Les arrondis peuvent parfois réserver des surprises. Regardez par exemple le code suivant :
Ce qui nous donne :
0.00 0.0 0.0 0.05 0.1 0.1 0.10 0.1 0.1 0.15 0.2 0.2 0.20 0.2 0.2 0.25 0.2 0.3 0.30 0.3 0.3 0.35 0.3 0.4 0.40 0.4 0.4 0.45 0.4 0.5 0.50 0.5 0.5 0.55 0.5 0.6 0.60 0.6 0.6 0.65 0.7 0.7 0.70 0.7 0.7 0.75 0.8 0.8 0.80 0.8 0.8 0.85 0.9 0.9 0.90 0.9 0.9 0.95 1.0 1.0
Les deux résultats sont différents !
L’explication, vous la trouverez dans la documentation de perl (perldoc -q round
) :
Don’t blame Perl. It’s the same as in C. IEEE says we have to do this. Perl numbers whose absolute values are integers under 2**31 (on 32 bit machines) will work pretty much like mathematical integers. Other numbers are not guaranteed.