非常に奇妙なエラーに遭遇しました。私はSolaris10を使用しており、Rails2.3.4でRubyEnterprise Edition(ruby 1.8.6(2008-08-08 patchlevel 286)[i386-solaris2.10])を使用しています。非常に奇妙なエラーがあります。irbで:
irb(main):001:0> require 'bigdecimal'
=> true
irb(main):002:0> b = BigDecimal.new('123')
=> #<BigDecimal:834d0e8,'0.123E3',4(8)>
irb(main):003:0> b.to_s
=> "0.123E3"
irb(main):004:0> b.to_i
=> 123
irb(main):005:0> b.to_f
=> 123.0
irb(main):006:0>
すべて順調!しかし、Railsコンソールを起動して同じことを行うと、「to_f」は常に「0,0」を返します。
>> b = BigDecimal.new('123')
=> #<BigDecimal:9e80e14,'0.123E3',4(8)>
>> b.to_s
=> "123.0"
>> b.to_i
=> 123
>> b.to_f
=> 0,0
Macで同じことをすると、これは起こりません。とても変だ!これはRubyEnterpriseEditionのバグである可能性がありますか?しかし、もしそうなら、なぜそれはirbで起こらないのですか(これはREEバージョンでもあります、私は再確認しました)。何か案は?
- ヨハネス