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.

couv_EI7PRO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Substitution d'expressions arithmétiques
Suivant
Mise au point d'un script