ruby-on-rails - Ruby 2.4 和 BigDecimal 错误(无效值)

标签 ruby-on-rails ruby bigdecimal

给定一个像这样的哈希值:

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/

相关文章:

ruby-on-rails - 如何确保该表不包含重复项(基于两个外键)?

Ruby 递归问题

ruby - 基于先前断开连接的 HTML 元素匹配 DOM 节点的子集

java - 在 Apache Velocity 中格式化 BigDecimal

ruby-on-rails - 在 Rails 5 中运行后台进程的最佳方式是什么?

ruby-on-rails - 多模型保存,如何包装交易和报告错误

ruby-on-rails - 获取 PG::UndefinedFunction: ERROR: operator does not exist: integer ~~* integer

ruby - 使用 Rails 安装程序安装后测试 sqlite3 的正确安装

Java BigDecimal 是否需要进行加法舍入?

Java BigDecimal 内存使用情况?