为什么阿里巴巴不推荐在项目中使用BigDecimal的equals方法进行数值比较?
- 内容介绍
- 相关推荐
本文共计1674个文字,预计阅读时间需要7分钟。
BigDecimal,广为人知,用法简单。这是Java.math包中提供的一种类型,用于进行精确的数值运算。在金额表示、计算等场景中,BigDecimal尤为适用。
BigDecimal,相信对于很多人来说都不陌生,很多人都知道他的用法,这是一种java.math包中提供的一种可以用来进行精确运算的类型。
很多人都知道,在进行金额表示、金额计算等场景,不能使用double、float等类型,而是要使用对精度支持的更好的BigDecimal。
所以,很多支付、电商、金融等业务中,BigDecimal的使用非常频繁。而且不得不说这是一个非常好用的类,其内部自带了很多方法,如加,减,乘,除等运算方法都是可以直接调用的。
除了需要用BigDecimal表示数字和进行数字运算以外,代码中还经常需要对于数字进行相等判断。
关于这个知识点,在最新版的《阿里巴巴Java开发手册》中也有说明:
这背后的思考是什么呢?
我在之前的CodeReview中,看到过以下这样的低级错误:
if(bigDecimal == bigDecimal1){ // 两个数相等 }
这种错误,相信聪明的读者一眼就可以看出问题,因为BigDecimal是对象,所以不能用==来判断两个数字的值是否相等。
本文共计1674个文字,预计阅读时间需要7分钟。
BigDecimal,广为人知,用法简单。这是Java.math包中提供的一种类型,用于进行精确的数值运算。在金额表示、计算等场景中,BigDecimal尤为适用。
BigDecimal,相信对于很多人来说都不陌生,很多人都知道他的用法,这是一种java.math包中提供的一种可以用来进行精确运算的类型。
很多人都知道,在进行金额表示、金额计算等场景,不能使用double、float等类型,而是要使用对精度支持的更好的BigDecimal。
所以,很多支付、电商、金融等业务中,BigDecimal的使用非常频繁。而且不得不说这是一个非常好用的类,其内部自带了很多方法,如加,减,乘,除等运算方法都是可以直接调用的。
除了需要用BigDecimal表示数字和进行数字运算以外,代码中还经常需要对于数字进行相等判断。
关于这个知识点,在最新版的《阿里巴巴Java开发手册》中也有说明:
这背后的思考是什么呢?
我在之前的CodeReview中,看到过以下这样的低级错误:
if(bigDecimal == bigDecimal1){ // 两个数相等 }
这种错误,相信聪明的读者一眼就可以看出问题,因为BigDecimal是对象,所以不能用==来判断两个数字的值是否相等。

