bigdecimal和0进行比较(bigdecimal与0比较大小)
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) 创建一个具有参数所指定以字符串表示的数值的对象。