我正在从 csv 导入数据,我需要将一些值转换为 BigDecimal,如果无法解析它们,则会引发错误。
根据测试,BigDecimal("invalid number") 返回 BigDecimal 0。这应该没问题,但有点混乱,除了有效值为 0...
Float("无效数字") 的行为不同并引发异常...
我当前的解决方案是:
class String
def to_bd
begin
Float(self)
rescue
raise "Unable to parse: #{self}"
end
BigDecimal(self)
end
end
我完全错过了什么吗?
在简单的情况下,您可以使用 RegExp
'123.4' =~ /^[+-]{0,1}\d+\.{0,1}\d*$/
=> 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)