BigDecimal 的一点想法

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
posted @ 2019-12-16 22:07  随意的马蒂洛克  阅读(122)  评论(0编辑  收藏  举报