什么?使用BigDecimal计算也会出现精度问题
// Reminder: a zero double returns '0.0', so we cannot fastpath。
金额用 double 算错过账,后来一律换 BigDecimal
财务月底对账,对出来差了 3 毛 7 分钱。就这 3 毛 7,财务的同事追着我们查了整整两天。金额对不上,哪怕只差一分钱,财务都不可能放过——这是原则问题。最后定位到的根因,说出来你可能都不信,就因为一个 double。
告警:线上慎用 BigDecimal,坑的差点被开了...
BigDecimal,相信对于很多人来说都不陌生,很多人都知道他的用法,这是一种java.math包中提供的一种可以用来进行精确运算的类型。
99% 的 Java 程序员都用错 BigDecimal,难怪对账永远对不上
做开发的朋友,尤其是刚入行的新手,有没有遇到过这种“灵异事件”:明明代码逻辑没毛病,但几百笔订单一汇总,总账莫名其妙差了一毛二?排查一下午,最后发现不是业务写错了,而是你用来存钱的float或double惹的祸!
利用「注解」和「反射」将BigDecimal属性中的NULL转换为0
在和前端对接的过程中发现有些金额字断返回的NULL,这样就产生了一些歧义,因为NULL和0并不是一码事,需要后端给出清晰返回,这个问题处理起来并不复杂,下面整理了几种处理方案:修改查询sql,查询时NULL的属性使用IFNULL函数转为0;
Java金额处理终极指南:Long与BigDecimal到底该怎么选?
在Java软件开发领域,金额处理是贯穿电商、金融、财务等核心业务的关键环节,选型失误可能直接引发资金对账不平、精度丢失、线上故障等严重问题。
Guava实战教程:12个生产场景,把重复代码写明白
每个场景都来自真实业务:参数校验、权限映射、本地缓存、接口限流、事件解耦。代码可以直接抄进项目,JDK 8 以上都能跑。一、先说清楚 Guava 是什么Guava 是 Google 开源的 Java 核心工具库。
BigDecimal用于金额计算,你以为用对了?99%的人可能都错了
但凡用Java做过金额计算,一定用过BigDecimal。但绝大多数人只用了它不到20%的功能,甚至用错了还浑然不知。今天不谈八股,只看代码。以下是我参与过的几十个支付、账务、电商项目里,最典型的真实错误和最佳实践。看完你会发现自己也可能踩过这些坑。