我遇到了一個非常奇怪的錯誤。我在Solaris 10上使用Ruby Enterprise Edition(ruby 1.8.6(2008-08-08 patchlevel 286)[i386-solaris2.10])和Rails 2.3.4。我有一個非常奇怪的錯誤。在irb中:Ruby 1.8.6 BigDecimal.to_f在Solaris上始終返回「0,0」
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上做同樣的事情時,不會發生這種情況。很奇怪!這可能是Ruby企業版中的一個錯誤?但是如果是這樣,爲什麼它不會與irb發生(這也是REE版本,我再次檢查)。有任何想法嗎?
- 約翰內斯
我已經更新了我的答案,並提供了一些信息,以便您掌握格式。 – 2009-11-11 10:31:04