Ruby 2.4 использует гауссово округление для округления чисел с плавающей запятой.Изменения плавающего округления в Ruby 2.4
Согласно Википедии:
Галстук отключающая правило, менее предвзято (даже тогда, когда исходные числа положительные или отрицательные с неодинаковой вероятностью) круглая половина даже. По этому соглашению, если доля y равна 0,5, то q является четным целым, ближайшим к y. Так, например, +23.5 становится +24, как и +24,5; в то время как -23.5 становится -24, как -24.5.
Однако выполнение следующего кода в Ruby 2.4 дает отличный результат, чем ожидается.
[1.5, 2.5, 3.5, 4.5, 5.5].each { | num | puts num.round }
# output:
2
3
4
5
6
# expected output(based on Gaussian rounding):
2
2
4
4
6
Может кто-нибудь объяснить, почему это так или что мне не хватает?