Sprintf浮点数字行为从Ruby 2.3更改为2.4

  • 本文关键字:Ruby 数字 Sprintf ruby
  • 更新时间 :
  • 英文 :


使用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-舍入更改

最新更新