Rails:货币到数字

时间:2014-03-31 03:12:08

标签: ruby-on-rails ruby currency

我的网站上有一些表单,在用户输入货币值后,这些输入被放入计算器中。

输入需要是浮点数或整数,但我想要它,如果输入'$ 200,000'或'200000',点击提交后它们都会产生'200000.0'。 (与number_to_currency相反)

我在想像

这样的东西
text = text.gsub(/[$,]/, '').to_f

或者更好的是取出所有非数字字符但这会导致输出中出现无意的零。

我也想在视图中格式化结果,这样如果结果浮点数在小数后面没有任何内容,例如200.00那么它将向上舍入到200.否则它将舍入到小数点后2位

最好我希望它在表单实际提交之前像存在验证器一样工作。

实施此方法的最佳方法是什么?我在想有一些我错过的东西。

1 个答案:

答案 0 :(得分:1)

对于第二部分,你可以这样做:

# after converting text to a float
text.modulo(1) == 0 ? text.to_i : sprintf("%.2f", text)

例如,如果text = 200000.0,我们会使用上述内容获得200000

另一方面,如果text = 200000.1,我们会使用以上内容获得200000.10