给定一个像这样的哈希值:
billed_amt:""
这段代码:
BigDecimal.new(tt[:billed_amt].to_s)
导致此错误:
ArgumentError: invalid value for BigDecimal(): ""
这是正确的行为吗?我尝试过更新 gem,但没有成功。
最佳答案
这是正确的行为。您可以在“BigDecimal fix for Rails 4 with Ruby 2.4”中阅读相关内容。
Ruby 2.4 附带的 Big Decimal 1.3.0 已更改为向构造函数抛出无效值异常,而不是像 Ruby 2.3 中那样返回 0。这样做是为了与其他数字类型(整数、 float 等)更加一致。
已经有suggestions to revert this functionality但是这很可能不会发生,因为 BigDecimal 需要与其他数字类型保持一致。
关于ruby-on-rails - Ruby 2.4 和 BigDecimal 错误(无效值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59022857/