我想知道 Rails 中有什么方便的函数可以将带有负号的字符串转换为数字。例如-1005.32
当我使用 .to_f
方法时,数字变为 1005
,忽略负号和小数部分。
最佳答案
.to_f
是正确的方法。
例子:
irb(main):001:0> "-10".to_f
=> -10.0
irb(main):002:0> "-10.33".to_f
=> -10.33
也许您的字符串不包含常规的“-”(破折号)?或者破折号和第一个数字之间有空格吗?
添加:
如果您知道您的输入字符串是一个 float 的字符串版本,例如“10.2”,那么 .to_f 是进行转换的最好/最简单的方法。
如果您不确定字符串的内容,那么在字符串中没有任何数字的情况下使用 .to_f
将给出 0。它也会根据您的输入字符串给出各种其他值。例如
irb(main):001:0> "".to_f
=> 0.0
irb(main):002:0> "hi!".to_f
=> 0.0
irb(main):003:0> "4 you!".to_f
=> 4.0
上面的 .to_f
行为可能正是您想要的,这取决于您的问题案例。
根据您想在各种错误情况下执行的操作,您可以使用 Kernel::Float
作为 Mark Rushakoff 的建议,因为当它对转换输入字符串不满意时它会引发错误.
关于ruby-on-rails - rails 将字符串转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2778093/