16

在一个变量中存储了这个值:$10.00 我需要得到这个10.00

我试图将此值转换为浮点数:

new_price = '%.2f' % (price.to_f)

但我得到了0.0

那有什么问题?我也试过

price = price.strip
price[0]=""
new_price = '%.2f' % (price.to_f)

但即使这样也没有帮助我......哪里有问题?

谢谢

4

3 回答 3

22

您需要删除第$一个。整个事情是这样的:

'%.2f' % '$10.00'.delete( "$" ).to_f

或者

'%.2f' % '$10.00'[1..-1].to_f

如果你喜欢密度,可能会遇到非美元。

于 2013-02-28T13:10:02.557 回答
0

要将其设置在变量中:

 current_price= '%.2f' % '$10.00'.delete( "$" ).to_f

更常见的错误是字符串中有逗号的数千个值,例如:10,000.00。逗号会导致同样的截断错误,但小数点不会,而且许多程序员甚至都不会捕捉到它(我们甚至不再注意到逗号了)。要解决这个问题:

current_price= '%.2f' % '10,000.00'.delete( "," ).to_f
于 2018-03-16T15:46:06.237 回答
-1

添加到弗罗德里克的回答:

您需要先删除 $ 。整个事情是这样的:

'%.2f' % '$10.00'.delete( "$" ).to_f

或者

'%.2f' % '$10.00'[1..-1].to_f

如果你喜欢密度,可能会遇到非美元。您需要格式化输出代码以确保获得两位小数 >with

您需要格式化输出字符串以确保获得两位小数。

puts "Current amount: #{format("%.2f", amount)}"
于 2016-06-19T22:22:20.913 回答