Ruby - 转换为float的字符串返回0.0

时间:2013-02-28 12:56:15

标签: ruby string floating-point type-conversion

在变量中存储此值:$10.00 我需要得到10.00

我试图将此值转换为float:

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

但我只是0.0

这有什么问题? 我也试过了

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

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

由于

3 个答案:

答案 0 :(得分:23)

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

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

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

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

答案 1 :(得分:0)

将其设置为变量:

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

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

current_price= '%.2f' % '10,000.00'.delete( "," ).to_f

答案 2 :(得分:-1)

加上弗里德里克的答案:

  

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

ggplot() +
  geom_map(data=county2, map=county2, aes(x=long, y=lat, map_id=subregion), col="white", fill="grey")
  

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

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

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

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