2010-05-25 3 views

Répondre

10

En mathématiques, rounding signifie arrondi au nombre entier le plus proche, donc arrondi 3,4 résultats en 3 et arrondi 3.6 résultats en 4.

Truncating, d'autre part, des moyens de retirer la partie décimale tout à fait, donc soit 3,4 ou 3.6 aboutit à 3.

La plupart des langages de programmation et des librairies suivent cela aussi.

7

round() et trunc(), dans la plupart des langages de programmation, correspondent à deux des quatre modes d'arrondi de base spécifiées par la norme IEEE-754.

Les quatre modes d'arrondi, les fonctions d'arrondi correspondants, et des exemples de la façon dont ils se comportent sur une variété d'entrées, sont:

rounding mode  function [1]  results of rounding: 
            0.2 1.7 -2.6 -3.3 
--------------------------------------------------------------------------------- 
round to nearest round() [2]  0.0 2.0 -3.0 -3.0 
round to zero  trunc()   0.0 1.0 -2.0 -3.0 
round to +infinity ceil()   1.0 2.0 -2.0 -3.0 
round to -infinity floor()   0.0 1.0 -3.0 -4.0 

[1] la norme IEEE-754 ne nécessite pas ces noms, et toutes les langues n'utilisent pas les mêmes noms. Ce ne sont que les noms les plus communs dans mon expérience.

[2] La fonction round() dans les langages C et C ne correspond pas exactement au mode d'arrondi IEEE-754 arrondi au plus proche. Plus précisément, il diffère dans sa gestion des cas à mi-chemin exact. La fonction C round() arrondit les «liens à partir de zéro», ce qui est probablement ce que vous avez appris à l'école primaire, mais introduit des biais dans certains calculs. Le mode IEEE-754 arrondi au plus proche spécifie que les liens soient arrondis au nombre pair le plus proche, ce qui est moins susceptible d'introduire un biais tout en maintenant le déterminisme.

Questions connexes