echo "scale=3;1/8" | bc
zeigt .125
auf dem Bildschirm. Wie kann angezeigt werden, 0.125
ob das Ausgabeergebnis kleiner als eins ist?
echo "scale=3;1/8" | bc
zeigt .125
auf dem Bildschirm. Wie kann angezeigt werden, 0.125
ob das Ausgabeergebnis kleiner als eins ist?
Antworten:
bc
kann vor dem Dezimalpunkt keine Null ausgeben, Sie können printf verwenden :
$ printf '%.3f\n' "$(echo "scale=3;1/8" | bc)"
0.125
Sie können in awk pfeifen
echo "scale=3;1/8" | bc | awk '{printf "%.3f\n", $0}'
oder du könntest einfach awk für alles verwenden
awk '{printf "%.3f\n", 1/8}' <<< ""
0.125
<<< ""
?
here string
. Also im Grunde so, als ob es am Ende eine leere Datei gibt, sonst liest awk von stdin. Weitere Informationen hier
BEGIN
Block verhindert diese Probleme und ist portabel.