我如何知道 BigDecimal 是否解析失败?

2024-02-13

我正在从 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(使用前将#替换为@)

我如何知道 BigDecimal 是否解析失败? 的相关文章

随机推荐