1.java中会有精度问题,比如:
double d1 = 2.0; double d2 = 1.7; System.out.println(d1-d2);//0.30000000000000004
会出现 0.30000000000000004这个结果而不是预期的0.3,
BigDecimal b1 = new BigDecimal("2.0"); BigDecimal b2 = new BigDecimal("1.7"); System.out.println(b1.subtract(b2));//0.3
这时候使用BigDecimal就能很好的解决这个问题.
2.科学计数法的转化
double 在数值比较大的时候会转化为科学计数法,后面有8个0,就是一亿的情况下,
会出现科学计数法
double l = 100000000; System.out.println(l);//1.0E8
这时候使用BigDecimal也可以很轻松解决
BigDecimal b = new BigDecimal(Double.toString(l)); System.out.println(b.toPlainString());//100000000
原文:https://www.cnblogs.com/lishuaiqi/p/12051697.html