Arrondir les nombres

Bash:
Arrondir les nombres

Comment :

Voici l’essentiel sur l’arrondissement dans Bash :

# Arrondir à l'inférieur en utilisant 'floor' avec bc
echo "scale=0; 3.49/1" | bc

# Arrondir à supérieur en utilisant 'ceiling' avec bc
echo "scale=0; 3.01/1" | bc -l

# Arrondir au plus proche entier en utilisant printf
printf "%.0f\n" 3.49

# Une astuce pour arrondir au plus proche entier en utilisant bc
echo "(3.49+0.5)/1" | bc

Exemples de résultats — directement de la bouche du terminal :

3  # Arrondi à l'inférieur (floor)
4  # Arrondi à supérieur (ceiling)
3  # Arrondi au plus proche (avec printf)
3  # Arrondi au plus proche (avec bc)

Approfondissement

Dans le temps, il n’y avait pas de bc ou printf dans les scripts Bash pour faire la magie des mathématiques. Les vieux de la vieille devaient compter sur des outils externes ou des solutions astucieuses. Maintenant, bc vous permet de faire des mathématiques de précision. Gardez à l’esprit que par défaut, bc n’arrondit pas — il prend l’inférieur. La partie scale définit l’action du point décimal.

Des alternatives ? Vous pourriez utiliser awk pour arrondir sans passer à bc ou vous débattre avec perl pour des besoins mathématiques plus lourds. Pour les masochistes, allez-y en pur Bash avec, disons, une manipulation de chaînes de caractères itérative – mais pourquoi faire ?

Quant aux détails, bc ne se limite pas à arrondir, il fait beaucoup de trucs en mathématiques — le mettre à l’échelle, le sinus, la racine carrée, vous l’appelez. Avec printf, il s’agit davantage de formater du texte, mais hé, ça arrondit les nombres, alors on ne se plaint pas.

Voir Aussi

Pour ceux qui en veulent plus :