Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby-将字符串转换为浮点返回0.0_Ruby_String_Floating Point_Type Conversion - Fatal编程技术网

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