在一个变量中存储了这个值:$10.00
我需要得到这个10.00
我试图将此值转换为浮点数:
new_price = '%.2f' % (price.to_f)
但我得到了0.0
。
那有什么问题?我也试过
price = price.strip
price[0]=""
new_price = '%.2f' % (price.to_f)
但即使这样也没有帮助我......哪里有问题?
谢谢
在一个变量中存储了这个值:$10.00
我需要得到这个10.00
我试图将此值转换为浮点数:
new_price = '%.2f' % (price.to_f)
但我得到了0.0
。
那有什么问题?我也试过
price = price.strip
price[0]=""
new_price = '%.2f' % (price.to_f)
但即使这样也没有帮助我......哪里有问题?
谢谢
您需要删除第$
一个。整个事情是这样的:
'%.2f' % '$10.00'.delete( "$" ).to_f
或者
'%.2f' % '$10.00'[1..-1].to_f
如果你喜欢密度,可能会遇到非美元。
要将其设置在变量中:
current_price= '%.2f' % '$10.00'.delete( "$" ).to_f
更常见的错误是字符串中有逗号的数千个值,例如:10,000.00。逗号会导致同样的截断错误,但小数点不会,而且许多程序员甚至都不会捕捉到它(我们甚至不再注意到逗号了)。要解决这个问题:
current_price= '%.2f' % '10,000.00'.delete( "," ).to_f
添加到弗罗德里克的回答:
您需要先删除 $ 。整个事情是这样的:
'%.2f' % '$10.00'.delete( "$" ).to_f
或者
'%.2f' % '$10.00'[1..-1].to_f
如果你喜欢密度,可能会遇到非美元。您需要格式化输出代码以确保获得两位小数 >with
您需要格式化输出字符串以确保获得两位小数。
puts "Current amount: #{format("%.2f", amount)}"