丸辣!BigDecimal怎么又掉坑了?🤔
- 内容介绍
- 文章标签
- 相关推荐
今天我们来聊聊一个让无数 Java 程序员又爱又恨的类 —— BigDecimal。说它“又爱又恨”是主要原因是它在金融系统中简直是神一般的存在 但用起来一不小心就可能踩到坑里比如:你明明只是想比个大小,后来啊一通操作猛如虎,发现后来啊却和你预想的不一样。这不就是“丸辣”?!
BigDecimal 为什么总是掉坑?
其实 BigDecimal 这个类,说白了就是个高精度计算的“神器”,但用不好,它也能让你在深夜的代码堆里哭出声来。比如你可能以为你写的是 1.00,但实际输出是 1,这不就炸了?

BigDecimal 的构造器,你真的用对了吗?
动手。 我们先从最基础的开始,BigDecimal 的构造器。你是不是也以为 new BigDecimal 就完事了?错!你得知道,BigDecimal 有个大坑叫:构造器传入 double 值!
害... 你可能觉得这不就是个数字吗?但你错了兄弟,BigDecimal 的构造器可不能随便用 double,得用字符串!
来看个例子:
new BigDecimal; // 坑:精度丢失!
你传入的 double 是 1.0,但你得到的可能是个 0.9999999999999999 的“近似值”。你是不是也踩过这个坑?
所以 BigDecimal 用对了是精确计算的代名词;用错了就是个大坑。比如:
new BigDecimal; // 对
new BigDecimal; // 错
所以 BigDecimal 用字符串构造器才是正道,别用 double,别问为啥,问就是血泪教训。
BigDecimal 的比较方法,你真的会用吗?
一阵见血。
今天我们来聊聊一个让无数 Java 程序员又爱又恨的类 —— BigDecimal。说它“又爱又恨”是主要原因是它在金融系统中简直是神一般的存在 但用起来一不小心就可能踩到坑里比如:你明明只是想比个大小,后来啊一通操作猛如虎,发现后来啊却和你预想的不一样。这不就是“丸辣”?!
BigDecimal 为什么总是掉坑?
其实 BigDecimal 这个类,说白了就是个高精度计算的“神器”,但用不好,它也能让你在深夜的代码堆里哭出声来。比如你可能以为你写的是 1.00,但实际输出是 1,这不就炸了?

BigDecimal 的构造器,你真的用对了吗?
动手。 我们先从最基础的开始,BigDecimal 的构造器。你是不是也以为 new BigDecimal 就完事了?错!你得知道,BigDecimal 有个大坑叫:构造器传入 double 值!
害... 你可能觉得这不就是个数字吗?但你错了兄弟,BigDecimal 的构造器可不能随便用 double,得用字符串!
来看个例子:
new BigDecimal; // 坑:精度丢失!
你传入的 double 是 1.0,但你得到的可能是个 0.9999999999999999 的“近似值”。你是不是也踩过这个坑?
所以 BigDecimal 用对了是精确计算的代名词;用错了就是个大坑。比如:
new BigDecimal; // 对
new BigDecimal; // 错
所以 BigDecimal 用字符串构造器才是正道,别用 double,别问为啥,问就是血泪教训。
BigDecimal 的比较方法,你真的会用吗?
一阵见血。

