ruby 2.4中to_f行为的变化

时间:2017-10-14 18:51:14

标签: ruby

将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时会有区别吗?

0 个答案:

没有答案