-
我用 BigDecimal 的 equals 判断两个金额是否相等,2.0 和 2.00 明明都是两块钱,它却告诉我不相等:一次 BigDecimal.equals 把小数位也算进相等的深度复盘
我用 BigDecimal 表示金额(为了精确不用 float,这是对的),某处用 equals 判断两个金额是否相等。可线上偶发:两个数值上明明相等的金额(一个 2.0、一个 2.00,都是两块钱)equals 却返回 false,导致金额一致才放行的逻辑卡住。查清 BigDecimal.equals 才明白:它不只比数值,还比 scale(小数位数)——BigDecimal 内部用无标度值+s…- 0
- 0
-
double 算钱算出误差:一笔分账对不上账的复盘
财务反馈营销活动结算时平台总账和商户分账总对不上,每天差几毛到几块。排查根因是一段分账代码用 double 在算钱。几天治理:认清浮点为何不精确、改用 BigDecimal 字符串构造、除法指定精度与舍入、比较用 compareTo、金额用 DECIMAL 或分 long 建模、加金额守恒断言。- 2
- 0
BigDecimal
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!


