在java中执行double-int

时间:2014-04-04 20:17:45

标签: java primitive

例如,如果我这样做:

double decPart = 5.57 - 5;
System.out.println(decPart);

它返回0.5700000000000003,而不是0.57。我可以使用System.out.printf("%。2f",decPart)正确打印出来,但这并不能解决问题(注意:小数部分不一定是2位小数) 。例如,如果我尝试这样做:

System.out.println(1.0 - decPart);

它将返回0.4299999999999997

有人可以解释一下这种行为以及如何解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:4)

这是由于floating point imprecision。 Java中的浮点数(floatdouble)不能完全代表某些数字。如果您正在寻找绝对精确度,请查看BigDecimal