为什么阿里巴巴不推荐在项目中使用BigDecimal的equals方法进行数值比较?

2026-05-16 01:211阅读0评论SEO教程
  • 内容介绍
  • 相关推荐

本文共计1674个文字,预计阅读时间需要7分钟。

为什么阿里巴巴不推荐在项目中使用BigDecimal的equals方法进行数值比较?

BigDecimal,广为人知,用法简单。这是Java.math包中提供的一种类型,用于进行精确的数值运算。在金额表示、计算等场景中,BigDecimal尤为适用。

BigDecimal,相信对于很多人来说都不陌生,很多人都知道他的用法,这是一种java.math包中提供的一种可以用来进行精确运算的类型。

很多人都知道,在进行金额表示、金额计算等场景,不能使用double、float等类型,而是要使用对精度支持的更好的BigDecimal。

所以,很多支付、电商、金融等业务中,BigDecimal的使用非常频繁。而且不得不说这是一个非常好用的类,其内部自带了很多方法,如加,减,乘,除等运算方法都是可以直接调用的。

除了需要用BigDecimal表示数字和进行数字运算以外,代码中还经常需要对于数字进行相等判断。

关于这个知识点,在最新版的《阿里巴巴Java开发手册》中也有说明:

这背后的思考是什么呢?

我在之前的CodeReview中,看到过以下这样的低级错误:

if(bigDecimal == bigDecimal1){ // 两个数相等 }

这种错误,相信聪明的读者一眼就可以看出问题,因为BigDecimal是对象,所以不能用==来判断两个数字的值是否相等。

阅读全文

本文共计1674个文字,预计阅读时间需要7分钟。

为什么阿里巴巴不推荐在项目中使用BigDecimal的equals方法进行数值比较?

BigDecimal,广为人知,用法简单。这是Java.math包中提供的一种类型,用于进行精确的数值运算。在金额表示、计算等场景中,BigDecimal尤为适用。

BigDecimal,相信对于很多人来说都不陌生,很多人都知道他的用法,这是一种java.math包中提供的一种可以用来进行精确运算的类型。

很多人都知道,在进行金额表示、金额计算等场景,不能使用double、float等类型,而是要使用对精度支持的更好的BigDecimal。

所以,很多支付、电商、金融等业务中,BigDecimal的使用非常频繁。而且不得不说这是一个非常好用的类,其内部自带了很多方法,如加,减,乘,除等运算方法都是可以直接调用的。

除了需要用BigDecimal表示数字和进行数字运算以外,代码中还经常需要对于数字进行相等判断。

关于这个知识点,在最新版的《阿里巴巴Java开发手册》中也有说明:

这背后的思考是什么呢?

我在之前的CodeReview中,看到过以下这样的低级错误:

if(bigDecimal == bigDecimal1){ // 两个数相等 }

这种错误,相信聪明的读者一眼就可以看出问题,因为BigDecimal是对象,所以不能用==来判断两个数字的值是否相等。

阅读全文