expr expression_mathématique
evalue le résultat d'une expression mathématique
expr 1/3
Comme vous le savez les variables en tcl ne sont pas typées. Ainsi le code 1+1 ne renverra pas le résultat 2.
Il faut dire à l'interpréteur tclsh que 1 est un chiffre que l'on va traiter comme une opération mathématique avec la commande expr.
Ainsi il faut écrire :
set resultat [expr 1 + 1 ]
cela renverra bien 2 dans la variable $resultat.
Une remarque cependant :
le code :
set resultat [expr 1 / 3 ]
renvoit 0. Pourquoi ?
Tout simplement car nous divisons un chiffre de type integer par un chiffre de type integer. Un arrondi est fait alors.
par contre le code :
le code :
set resultat [expr 1 / 3.0 ]
renvoit 0.333333333333 avec une précision de 12 chiffres.
Nous pouvons demander une précision de 17 chiffres après la virgule par exemple en écrivant ceci :
set tcl_precision 17
set resultat [expr 1 / 3.0 ]
le résutat est : 0.33333333333333331 avec une précision de 17 chiffres.
remarque: Le dernier 1 est un arrondi suivant la norme IEEE.