我的节目如下:
double tax = 180.09;
double gTotal = 277.08;
double total = tax + gTotal;
System.out.println(total);
执行后输出457.16999999999996。
在Google搜索之后,我发现此行为的原因之一是可能没有精确的二进制表示的小数部分。
要验证我在下面尝试过:
double dNum = 457.17;
System.out.println(dNum);
它输出正确的输出为457.17。在这种情况下,为什么不打印457.16999999999996。