我正在为一个网站编写报告,我目前正在考虑处理 BigDecimal -0.0 的最佳方法。
我正在使用的数据库有很多。当这些-0.0 通过number_to_currency()
时,我得到“$-0.00”。我的负数格式实际上是“-$x.xx”,所以请注意 number_to_currency 没有将其格式化为负数(否则美元符号前也会有一个负号),但由于某种原因,负数符号与 0 一起被翻译。
现在我的解决方案是每次从数据库中获取金额时都这样做:
amount *= -1 if amount == 0 && amount.sign == -1
这会将 -0.0 更改为 0.0。这很简单,但我不禁想知道是否有更好的解决方案,或者 BigDecimals 或 number_to_currency 上的东西来处理我只是找不到的这种情况。