9 votes

Pourquoi le RoundingMode HALF_UP de Java arrondit-il -2,5 à -3 ?

RoundingMode permet au programmeur de spécifier la manière dont les nombres à virgule flottante doivent être arrondis. C'est très bien, mais il y a une chose que j'ai trouvée bizarre. Peut-être ai-je mal compris quelque chose de fondamental à l'école.

Mais ce mode d'arrondi est décrit comme celui qu'on m'a enseigné à l'école, "Toujours arrondir au nombre le plus proche, et quand on est au centre, toujours arrondir au nombre supérieur", mais pourquoi arrondit-il -2,5 à -3 ?

J'en conclus qu'il arrondit à la valeur supérieure en termes de valeurs absolues, mais -2 est, pour moi, certainement "supérieur" à -2,5.

6voto

Louis Wasserman Points 67557

RoundingMode.UP est le mode d'arrondi pour "loin de zéro". RoundingMode.FLOOR est vers l'infini négatif, et CEILING est vers l'infini positif. HALF_UP est compatible avec UP lorsque la partie fractionnaire est exactement 0,5.

Ils ont dû choisir algunos pour signifier "s'éloigner de zéro".

3voto

Jason Sperske Points 12389

Le raisonnement est décrit dans les JavaDocs de RoundingMode.HALF_UP .

Mode d'arrondi vers le "voisin le plus proche", sauf si les deux voisins sont équidistants, auquel cas l'arrondi se fait vers le haut. Se comporte comme pour RoundingMode.UP si la fraction rejetée est >= 0.5 ; sinon, se comporte comme pour RoundingMode.DOWN. Notez qu'il s'agit du mode d'arrondi généralement enseigné à l'école.

En Wikipedia (en anglais) sur les méthodes d'arrondi fait une affirmation différente :

Par exemple, selon cette règle, la valeur 23,5 est arrondie à 24, mais la valeur -23,5 est arrondie à -23.

Il s'agit de l'une des deux règles généralement enseignées dans les cours de mathématiques élémentaires aux États-Unis.

Bien qu'une citation ait été demandée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X