import static java.lang.System.out;
public class q2{
public static void main(String args[]){
double x=4.02, y=0.05;
out.println(x+y);
}
}
输出:
4.069999999999999
为什么输出那个。我以为会是4.07。请解释为什么在java中发生这种情况?
对于不准确的问题标题,我们深表歉意。我没有比这更好的头衔
答案 0 :(得分:3)
这是因为某些数字 - 例如0.1 - 无法在二进制浮点中精确表示。
请阅读以下文章:
答案 1 :(得分:1)
您看到了舍入错误。见How to resolve a Java Rounding Double issue
要解决此问题,您可以更改为BigDecimal而不是双倍,如链接问题的已接受答案中所述。