加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 21:09:34 所属栏目:百科 来源:网络整理
导读:我正在从csv导入数据,我需要将一些值转换为BigDecimal,如果无法解析则会引发错误. 从测试开始,BigDecimal(“无效数字”)返回一个0的BigDecimal.这没关系,但有点凌乱,除了有效值为0 … Float(“无效数字”)的行为不同并抛出异常…… 我目前的解决方案是: cla
我正在从csv导入数据,我需要将一些值转换为BigDecimal,如果无法解析则会引发错误.

从测试开始,BigDecimal(“无效数字”)返回一个0的BigDecimal.这没关系,但有点凌乱,除了有效值为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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读