关于java计算double型的问题

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,这个是为什么呢?

5个回答

double计算用BigDecimal

楼上正解BigDecimal

在计算double的时候 最好都在后面加个d eg: double a = 01.5d;

double在计算小数的时候是非精确的,要精确请采用BigDecimal,你也可以参照effective java里面相应的章节

没必要去关注这种问题,这种精度问题就是这样怪怪的,实际是不会用这种来计算的

都是用BigDecimal

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐