转 Java的 BigDecimal类型比较大小


这个类是java里精确计算的类

1、比较对象是否相等,一般的对象用equals,但是BigDecimal比较特殊,举个例子

BigDecimal a = new BigDecimal.valueOf(1.0); BigDecimal b = new BigDecimal.valueOf(1.000);

在现实中这两个数字是相等的,但是问题来来了a.equals(b)结果是false;怎么不相等了呢?

解决办法:

  if(a.compareTo(b)==0)//结果是true public int compareTo(BigDecimal val) //结果是:-1 小于,0 等于,1 大于
if(a.compareTo(b) == -1){ a } if(a.compareTo(b)==0){ a=b; } if(a.compareTo(b)==1){ a>b; }

public static MathContext mc = new MathContext(); public static BigDecimal add(BigDecimal a1,BigDecimal a2){ a1=null2Zero(a1); a2=null2Zero(a2); return a1.add(a2,mc); } public static BigDecimal null2Zero(BigDecimal arg){ return arg==null ? BigDecimal.ZERO : arg ; }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM