【问题标题】:Can't output currency in ruby with money-gem [closed]不能用货币宝石输出红宝石货币[关闭]
【发布时间】:2015-09-16 22:51:16
【问题描述】:

如果我运行这段代码:

require "money"

price1 = Money.new(100)
price2 = Money.new(2000)

total = price1 + price2

puts total

我收到I18n::InvalidLocale 错误:

[path to ruby]/gems/i18n-0.7.0/lib/i18n.rb:284:in `enforce_available_locales!': :en is not a valid locale (I18n::InvalidLocale)

我可以做些什么来避免这个问题?

【问题讨论】:

    标签: ruby


    【解决方案1】:

    金钱宝石使用I18n。您可以添加有效的语言环境或禁用 I18n:

    require 'money'
    
    Money.new(100).format  #=> I18n::InvalidLocale: :en is not a valid locale
    
    Money.use_i18n = false
    
    Money.new(100).format  #=> "$1.00"
    

    【讨论】:

    • 这正是我正在寻找的。谢谢。
    【解决方案2】:

    试试这个:

    require "money"
    
    price1 = Money.new(100)
    price2 = Money.new(2000)
    
    total = price1 + price2
    
    puts "#{total.fractional} #{total.currency}"
    

    【讨论】:

    • 谢谢它的工作!据我所知,2100 的单位是美分,对吗??????我如何使它以美元输出,例如; 21.00
    • @DenieallJoenethen 我想,有点像:total.to_f。如果这个答案对你有帮助,请标记它。
    【解决方案3】:
    require "money"
    
    price1 = Money.new(100)
    price2 = Money.new(2000)
    
    total = price1 + price2
    
    puts "#{total} #{total.currency}"
    

    【讨论】:

      猜你喜欢
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多