public class Test {
public static void main(String[] args){
double d = 0.14;
System.out.println(d*100);
}
}
将会打印:14.000000000000002 (在我机器上是这样显示的)
如果要是d=0.15,打印是15.0,这个是为什么呢?
double计算用BigDecimal
楼上正解BigDecimal
在计算double的时候 最好都在后面加个d eg: double a = 01.5d;
double在计算小数的时候是非精确的,要精确请采用BigDecimal,你也可以参照effective java里面相应的章节
没必要去关注这种问题,这种精度问题就是这样怪怪的,实际是不会用这种来计算的
都是用BigDecimal