我遇到了一个非常奇怪的错误。我在 Solaris 10 上,使用 Ruby Enterprise Edition (ruby 1.8.6 (2008-08-08 patchlevel 286) [i386-solaris2.10]) 和 Rails 2.3.4。我有一个非常奇怪的错误。在 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 上做同样的事情时,这不会发生。很奇怪!这可能是 Ruby 企业版中的错误吗?但如果是这样,为什么 irb 不会出现(这也是 REE 版本,我仔细检查了)。有任何想法吗?
- 约翰内斯