"9.99".to_f
=> 999.0
这是预期的行为吗?如何将“9.99”转换为9.99
答案 0 :(得分:3)
你在哪个地区工作?我的猜测是它正在治疗“。”作为千位分隔符(在这种情况下碰巧在错误的位置)和“,”作为小数点。
尝试
"9,99".to_f
...但如果可行的话,它可能依赖于当前的系统文化,你应该寻找一种文化不变的转换方式。
答案 1 :(得分:2)
您使用的是哪个版本的Ruby?
“9.99”.to_f对我在Windows上使用Ruby 1.8.6的结果为9.99。
答案 2 :(得分:1)
什么版本?这在1.8.7上按预期工作。
irb(main):001:0> "9.99".to_f
=> 9.99
ruby -e "puts \"9.99\".to_f"
9.99
答案 3 :(得分:1)
也许一些讨厌的gem或Rails插件改变了你的String#to_f行为......
答案 4 :(得分:-1)
不确定。这是一种依赖于文化的转换。在IronRuby 0.9上测试