Saviez vous que...?
Pour les programmeurs, l'arrondissement de chiffre est chose du quotidien, mais saviez vous que les fonctions peuvent se fier un standard bancaire? Hey bien ca vient de m'arriver.. imaginez ma stupéfaction de savoir que 2.5 arrondi donne 2.
J'utilise la fonction Round dans Delphi 6.0 qui se fit à ce standard qui indique que le nombre doit être arrondi à l'entier le plus près. Le standard IEEE 754 explique les 4 types d'arrondissements possible, dont ce dernier qui semble être celui utilisé par défaut.
Cette arrondissement permet d'égaliser l'arrondissement d'un nombre à mi-chemin d'un chiffre à l'autre (1.5, 2.5, 3.5). Donc sur plusieurs calculs, le calcul se précisera, mais sur un seul arrondissement on peut retrouver des différences mineurs.
Voici quelques exemples d'arrondissement selon ces standards :
Round(1.5) = 2
Round(2.5) = 2
Round(3.5) = 4
Round(4.5) = 4
Round(5.5) = 6
Round(6.5) = 6
Et voici des exemples selon l'arrondissement plus commun :
Round(1.5) = 2
Round(2.5) = 3
Round(3.5) = 4
Round(4.5) = 5
Round(5.5) = 6
Round(6.5) = 7
Pour delphi, une fonction permet de changer ce standard pour revenir à l'arrondissement commun la voici :
Set8087CW((Default8087CW or $800) and $FBFF);
Ceci n'affecte que le programme (et sous-programme) en cours et non le système au complet, il faut donc être prudent en l'utilisant pour ne pas affecter d'autres utilisations Round de notre programme.
Aucun commentaire:
Publier un commentaire