货币到数字转换轨道

Eas*_*per 5 ruby-on-rails ruby-on-rails-4 ruby-on-rails-4.1

Rails 4.1 Ruby 2.0 Windows 8.1

我找到了number_to_currency助手,但没有找到currency_to_number.我试图将$ 8,000之类的东西转换为小数.那有没有Rails助手?有任何想法吗?

评论:

我一直在用这个:

number.to_s.gsub(/[^\d\.]/, '').to_f
Run Code Online (Sandbox Code Playgroud)

除了数字和小数点之外,它还消除了所有内容,并且还处理了意外整数.我想知道我是否错过了某种currency_to_number助手.看起来我不是.我会接受其中一个答案.

chr*_*hke 9

豪尔赫的答案很好,但我想你会知道如何输入货币.这将需要白名单而不是黑名单.

def currency_to_number currency
 currency.to_s.gsub(/[$,]/,'').to_f
end
Run Code Online (Sandbox Code Playgroud)

  • 我相信在许多国家/地区都使用逗号作为小数点分隔符。对诸如“23,00 $”(表示 23 美元)之类的值运行此代码会将其转换为 2300 而不是 23。 (2认同)