ruby – 我如何知道BigDecimal是否无法解析?

前端之家收集整理的这篇文章主要介绍了ruby – 我如何知道BigDecimal是否无法解析?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在从csv导入数据,我需要将一些值转换为BigDecimal,如果无法解析则会引发错误.

从测试开始,BigDecimal(“无效数字”)返回一个0的BigDecimal.这没关系,但有点凌乱,除了有效值为0 …

Float(“无效数字”)的行为不同并抛出异常……

我目前的解决方案是:

  1. class String
  2. def to_bd
  3. begin
  4. Float(self)
  5. rescue
  6. raise "Unable to parse: #{self}"
  7. end
  8. BigDecimal(self)
  9. end
  10. end

我完全错过了什么吗?

解决方法

在简单的情况下,您可以使用RegExp
  1. '123.4' =~ /^[+-]{0,1}\d+\.{0,1}\d*$/
  2. => 0

猜你在找的Ruby相关文章