【问题标题】:rails number_to_currency bug?rails number_to_currency 错误?
【发布时间】: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


【解决方案1】:

对我们来说,这个问题是由错误的 ruby​​ 次要版本引起的。见:https://rhn.redhat.com/errata/RHBA-2010-0012.html

有问题的服务器:

[auser@aserver01 ~]$ rpm -qa | grep ruby
ruby-libs-1.8.5-5.7
ruby-rdoc-1.8.5-5.7
ruby-1.8.5-5.7
ruby-devel-1.8.5-5.7
ruby-irb-1.8.5-5.7

没有问题的服务器:

[auser@aserver02 ~]$ rpm -qa | grep ruby
ruby-1.8.5-5.5
ruby-ri-1.8.5-5.5
ruby-irb-1.8.5-5.5
ruby-rdoc-1.8.5-5.5
ruby-libs-1.8.5-5.5
ruby-devel-1.8.5-5.5

【讨论】:

    猜你喜欢
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2014-07-12
    • 1970-01-01
    相关资源
    最近更新 更多