Я столкнулся с очень странной ошибкой. Я на Solaris 10, использую Ruby Enterprise Edition (ruby 1.8.6 (2008-08-08 patchlevel 286) [i386-solaris2.10]) с Rails 2.3.4. У меня очень странная ошибка. В ирб:
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 Enterprise Edition? Но если так, почему это не происходит с irb (который также является версией REE, я дважды проверил). Есть идеи?