RoundedToHalfEven()
RoundedTo() keeps its historical half-up behaviour, so nothing existing moves; the mode is something you ASK for.
aussi: banker's rounding round half to even accounting rounding
Exemples de base (2)
# -1.5 goes away from zero under half-up
? (new stzNumber("-1.5")).RoundedToHalfUp(0)
# ...and to the even digit under half-even
? (new stzNumber("-2.5")).RoundedToHalfEven(0)
# -0.5 rounds to plain 0, not -0
? (new stzNumber("-0.5")).RoundedToHalfEven(0)
# ...and so does -0.4
? (new stzNumber("-0.4")).RoundedToHalfUp(0)-2 -2 0 0
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de numeric_tie_rule_narrated.ring(s'ouvre dans un nouvel onglet)
# 9.99 to one place carries into the units
? (new stzNumber("9.99")).RoundedToHalfUp(1)
# 9.999 to none carries twice
? (new stzNumber("9.999")).RoundedToHalfUp(0)
# 99.95 carries through both
? (new stzNumber("99.95")).RoundedToHalfEven(1)
# 19.995 reaches twenty
? (new stzNumber("19.995")).RoundedToHalfUp(2)
# it pads rather than inventing
? (new stzNumber("1.5")).RoundedToHalfEven(3)
# ...and an integer gains a fraction
? (new stzNumber("7")).RoundedToHalfUp(2)10.0 10 100.0 20.00 1.500 7.00
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de numeric_tie_rule_narrated.ring(s'ouvre dans un nouvel onglet)
Portée (3)
# 1.005 to two places is 1.01 commercially
? (new stzNumber("1.005")).RoundedToHalfUp(2)
# ...and 1.00 by banker's
? (new stzNumber("1.005")).RoundedToHalfEven(2)
# 0.125 is 0.13 or 0.12
? (new stzNumber("0.125")).RoundedToHalfUp(2)
# ...depending on the rule you named
? (new stzNumber("0.125")).RoundedToHalfEven(2)
# 2.345 splits the same way
? (new stzNumber("2.345")).RoundedToHalfEven(2)
# ...but 0.135 does not, because 3 is odd
? (new stzNumber("0.135")).RoundedToHalfEven(2)1.01 1.00 0.13 0.12 2.34 0.14
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de numeric_tie_rule_narrated.ring(s'ouvre dans un nouvel onglet)
# 0.4 goes down under either
? (new stzNumber("0.4")).RoundedToHalfEven(0)
# ...and half-up agrees
? (new stzNumber("0.4")).RoundedToHalfUp(0)
# 0.6 goes up under either
? (new stzNumber("0.6")).RoundedToHalfEven(0)
# ...and half-up agrees
? (new stzNumber("0.6")).RoundedToHalfUp(0)
# 0.51 is more than half, so it rises even under half-even
? (new stzNumber("0.51")).RoundedToHalfEven(0)
# 0.4999 is less than half, so it falls even under half-up
? (new stzNumber("0.4999")).RoundedToHalfUp(0)
# 0.500 IS a tie -- trailing zeros do not change that
? (new stzNumber("0.500")).RoundedToHalfEven(0)0 0 1 1 1 0 0
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de numeric_tie_rule_narrated.ring(s'ouvre dans un nouvel onglet)
# half-up sends 0.5 to 1
? (new stzNumber("0.5")).RoundedToHalfUp(0)
# ...1.5 to 2
? (new stzNumber("1.5")).RoundedToHalfUp(0)
# ...2.5 to 3
? (new stzNumber("2.5")).RoundedToHalfUp(0)
# ...and 3.5 to 4
? (new stzNumber("3.5")).RoundedToHalfUp(0)
# half-even sends 0.5 to 0
? (new stzNumber("0.5")).RoundedToHalfEven(0)
# ...1.5 to 2
? (new stzNumber("1.5")).RoundedToHalfEven(0)
# ...2.5 to 2, not 3
? (new stzNumber("2.5")).RoundedToHalfEven(0)
# ...and 3.5 to 4
? (new stzNumber("3.5")).RoundedToHalfEven(0)1 2 3 4 0 2 2 4
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de numeric_tie_rule_narrated.ring(s'ouvre dans un nouvel onglet)
Les extensions de cette méthode
Chaque extension, et si elle existe pour cette méthode ; une extension qui existe se compose avec les autres (FindSTCS).
Chaque exemple est un fichier de test de la bibliothèque, exécuté dans la bibliothèque pour cette page ; seuls ceux dont la sortie a tenu toutes les promesses écrites par leur fichier sont montrés. Les explications, les titres et le code sont ceux de la bibliothèque, en anglais.
Voir aussi
- La classe stzNumber
- La référence du domaine : Numérique et optimisation
- Les autres méthodes de ces exemples : stzNumber.RoundedToHalfUp

