System.out.println(2.00-1.10)
这个结果实际上不是
0.9
。
在Java中,并不是所有的十进制数字都能被double类型准确地描述,因此
double
、
float
型不能进行精确计算。解决问题的办法是用java.math包中的
BigDecimal类,它用以描述任意精度的有符号十进制数字
System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10")));
如果要求精确计算,那么就要用到int、long以及BigDecimal实现。