【发布时间】:2009-10-05 19:31:11
【问题描述】:
我有一个 rails 应用程序(rails 版本 2.1.0),今天我发现了一个非常奇怪的错误。
货币值(mysql 十进制列,精度为 8,小数位数为 2)是 86.02。但是,number_to_currency 方法返回“$86.20”。这只发生在生产服务器中。我的开发服务器正确返回。生产服务器是red hat,dev是ubuntu。
这也在控制台中得到确认。
>> p.deposit_total.to_s
=> "86.02"
>> helper.number_to_currency p.deposit_total
=> "$86.20"
这是一个已知问题吗?
谢谢。
山姆
【问题讨论】:
-
我缩小了问题的范围。 b=BigDecimal("86.02") b.to_f => 86.2 这只发生在生产服务器中。为什么会发生这种情况,我该如何解决?
-
我认为这可能是红宝石错误。这发生在 irb 中。红宝石版本是 1.8.5。
-
这可能只是 BigDecimal 错误。 irb(main):023:0> BigDecimal.new("1.0234") => #
内部表示错误。 -
fwiw,第一个注释示例不会出现在 ruby 1.8.7 或 1.8.6(至少 REE 版本)中
-
我确认此错误与 ruby 版本无关。那么它可能是硬件或系统配置问题。我怎样才能找到它?
标签: ruby-on-rails helper