Actions
Bug #3659
closedMarshal.load(Marshal.dump(10.0)) => 1.0
Description
=begin
trunk で 10.0, 200.0 のように 0 でない桁が1つだけの Float を
Marshal.dump -> load すると桁がなくなってしまいます。
Marshal.load(Marshal.dump(1.0))
=> 1.0
Marshal.load(Marshal.dump(10.0))
=> 1.0
Marshal.load(Marshal.dump(100.0))
=> 1.0
Marshal.load(Marshal.dump(110.0))
=> 110.0
r27774, r27792, r27937 の一連の修正で、w_float がダンプする表現が
100.0 => "100" から 100.0 => "1.e2" のように変化したのに
load 時に利用している ruby_strtod() がこのような表現は "1" までしか読まないためです。
なお ruby_strtod が "1.e2" のような表現を受け付けるようにすればいいかとも思ったのですが
r17072 のコミットログによればこれは意図的なようです。
=end
Actions
Like0
Like0Like0Like0