Comment afficher zéro avant le point décimal en BC?


9
echo "scale=3;1/8" | bc

s'affiche .125à l'écran. Comment montrer 0.125si le résultat de sortie est inférieur à un?

Réponses:


9

bcne peut pas sortir zéro avant le point décimal, vous pouvez utiliser printf :

$ printf '%.3f\n' "$(echo "scale=3;1/8" | bc)"
0.125

Commande plus lisible par l'homme. ;-)
Kevin Dong

1

Vous pouvez diriger vers awk

echo "scale=3;1/8" | bc | awk '{printf "%.3f\n", $0}'

ou vous pouvez simplement utiliser awk pour tout cela

awk '{printf "%.3f\n", 1/8}' <<< ""

Production

0.125

Pourquoi devrions-nous faire <<< ""?
Kevin Dong

@KevinDongNaiJia awk nécessite un fichier d'entrée pour fonctionner, cela crée et vide here string. Donc, fondamentalement, prétend qu'il y a un fichier vide à la fin, sinon awk lira à partir de stdin.Plus d'informations ici

@cuonglm pour que vous puissiez, ne modifiez pas mes réponses, s'il vous plaît.

@cuonglm Petty downvote, nice!

1
@JID: Tous les shell ne sont pas pris en charge ici, vous devez le spécifier pour les autres utilisateurs. L'utilisation de BEGINblock vous évite ce problème et c'est portable.
cuonglm
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.