echo "scale=3;1/8" | bc
zeigt .125auf dem Bildschirm. Wie kann angezeigt werden, 0.125ob das Ausgabeergebnis kleiner als eins ist?
echo "scale=3;1/8" | bc
zeigt .125auf dem Bildschirm. Wie kann angezeigt werden, 0.125ob das Ausgabeergebnis kleiner als eins ist?
Antworten:
bckann 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
BEGINBlock verhindert diese Probleme und ist portabel.