Ruby-将字符串转换为浮点返回0.0
在变量中存储此值:Ruby-将字符串转换为浮点返回0.0,ruby,string,floating-point,type-conversion,Ruby,String,Floating Point,Type Conversion,在变量中存储此值:$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 或 如果你
$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'.delete( "$" ).to_f
或
如果你喜欢密度,可能会遇到非美元。
您需要为输出设置代码格式,以确保获得两个小数位>
您需要格式化输出字符串,以确保获得两位小数
puts "Current amount: #{format("%.2f", amount)}"
要在变量中设置它,请执行以下操作:
current_price= '%.2f' % '$10.00'.delete( "$" ).to_f
更常见的错误是一个以千为单位的值,其中字符串中有一个逗号,如:10000.00。逗号将导致相同的截断错误,但十进制不会,许多程序员甚至不会捕捉到它(我们甚至不再注意到逗号)。要解决这个问题:
current_price= '%.2f' % '10,000.00'.delete( "," ).to_f
谢谢你的回答,但是输出仍然是
10.0
,而不是10.00
。对我来说不是1.9.3-p392:006>“%.2f”“%$10.00”。删除($”)。到_f=>“10.00”
,与你完全一样,唯一的区别是值存储在数据库中OK-这很奇怪。你可能需要发布更多的代码让我有一个想法。你用的是什么ruby?我用的是ruby 1.9.3p385
。
current_price= '%.2f' % '$10.00'.delete( "$" ).to_f
current_price= '%.2f' % '10,000.00'.delete( "," ).to_f