使用Ruby 2.3.7,
'%.2g' % 1.05
返回"1.1">
但使用Ruby 2.4.0
'%.2g' % 1.05
返回"1.0">
为什么这种行为不同?感谢
在Ruby 2.4中,Float#round
的默认策略改为高斯舍入。
"这是Nobu早期为处理浮点数字与ruby-2.3.3中的Kernel#sprintf不一致的情况所做的努力">
https://blog.heroku.com/ruby-2-4-features-hashes-integers-rounding#actual-舍入更改