bigdecimal和0进行比较(bigdecimal与0比较大小)

http://www.itjxue.com  2023-01-27 03:27  来源:未知  点击次数: 

java中BigDecimal怎么与0比较?

标准做法\x0d\x0aintr=big_decimal.compareTo(BigDecimal.Zero);//和0,Zero比较\x0d\x0aif(r==0)//等于\x0d\x0aif(r==1)//大于\x0d\x0aif(r==-1)//小于\x0d\x0a\x0d\x0a或者\x0d\x0aif(big_decimal.equals(BigDecimal.Zero))//是否等于0

BigDecimal对比大小使用compare而不使用equals

在bigdecimal的对比大小中,建议使用compare而不是使用equals。

按理说0和0.00应该是相等,但在上图中发现返回结果却是false。

equals源码:

可以发现当小数位scale不等时,自动返回了false。

compare源码:

signnum源码:

compare源码可见,先对小数位scale进行了对比,如果不等,又将两个数进行了转换,转成int,对比int的大小。

java 中 BigDecimal 怎么与 0 比较

如果不确定 bigDecimal 的范围,可以把 0 转化为 bigDecimal类型的,然后用其 equals方法进行比较

BigDecimal bd1 =... ;//其中的一个bigDecimal对象

BigDecimal bd2 = new BigDecimal(0) //把 0 转为 BigDecimal

就可以用 bd1.CompareTo(bd2) 根据返回值进行比较

BigDecimal 怎么比较大小

BigDecimal比较大小使用compareTo(BigDecimal)方法:

int flag?= bigdemical.compareTo(bigdemical1)。

flag?= -1,表示bigdemical小于bigdemical1。

flag?=0,表示bigdemical等于bigdemical1。

flag?=1,表示bigdemical大于bigdemical1。

实际中直接跟0比较就可以了,别跟-1或者1比较。

构造方法

BigDecimal一共有4个构造方法:

BigDecimal(int) 创建一个具有参数所指定整数值的对象。

BigDecimal(double) 创建一个具有参数所指定双精度值的对象。(不建议采用)

BigDecimal(long) 创建一个具有参数所指定长整数值的对象。

BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。

(责任编辑:IT教学网)

更多

推荐网络创业文章