Arithmétique sur les flottants Arithmétique:flottant
Seul le ksh93 propose une fonctionnalité native pour travailler avec des nombres flottants.
1. ksh93
La commande typeset permet de déclarer un nombre flottant avec la précision souhaitée. typeset
Syntaxe
typeset -Fprecision var1[=val1] [ var2=[val2] ... ]
Exemple
$ typeset -F3 tva=0.196
$ typeset -F2 ht=153
$ typeset -F2 montant Tva
$ montantTva=$(($ht * $tva ))
$ echo $montant Tva
29.99 # Arrondi de 29.988
2. Autres shells
La commande bc permet de réaliser des calculs et se comporte comme un filtre. Il est également possible d’utiliser la commande awk (nawk sur certaines plates-formes) qui sait effectuer des calculs sur les nombres flottants. bc
Exemple
Envoi d’une expression arithmétique à la commande bc :
$ ht=153
$ tva=0.196
$ echo "$ht * $tva" | bc
29.988
Envoi de deux paramètres à la commande awk (cf. chapitre Le langage de programmation awk) :
$ echo "$ht $tva" | awk '{ print $1 * $2 }'
29.988
Même chose que ci-dessus avec formatage :
$ echo "$ht $tva" | awk '{ printf("%.2f\n", $1 * $2) }'
29.99
Attention aux arrondis des valeurs limites, aussi bien avec typeset qu’avec printf : par exemple, le nombre 2.255 pourra être arrondi à 2.25 et non 2.26.