将2.3版本的ruby版本升级到2.4并注意到{{to_f}}功能的一些变化。行为改变之一是
2.3版
2.3.3 :001 >
'1.00000000000000000000000000000000000000000000000000000000000008'.to_f
=> 1.0
2.3.3 :002 >
'0.00000000000000000000000000000000000000000000000000000000000008'.to_f
=> 0.0
与2.4.1。版本
pry(#<001>)>
"0.00000000000000000000000000000000000000000000000000000000000008".to_f
=> 8.0e-62
pry(#<002>)>
"0.000000000000000000000000000000000000000000000000000000000000008".to_f
=> 8.0e-63
pry(#<004>)> '0.00000000000000000000000008'.to_f
=> 8.0e-26
pry(#<005>)>
'0.00000000000000000000000000000000000000000000000000000000000008'.to_f
=> 8.0e-62
pry(#<006>)>
'1.00000000000000000000000000000000000000000000000000000000000008'.to_f
=> 1.0
任何人都可以帮助我理解为什么在两个版本的ruby中对62位数执行to_f
时会有区别吗?