帮助,我在使用负数添加双值时出现问题
一个显示问题的示例程序:
double newX = 850.0;
double delta = -1.6994427191177073E12;
double total = delta + newX;
System.out.println("newX:" + newX);
System.out.println("delta:" + delta);
System.out.println("total:" + total);
但是给定的输出是:
newX:850.0
delta:-1.6994427191177073E12
total:-1.6994427182677073E12
我希望总价值在" 848.30055729"附近。如何处理这个计算?
问候,
丹尼斯
答案 0 :(得分:4)
计算正确。
让我们从科学记数法转换你的数字
-1.6994427191177073E12
到十进制定点表示法:
-1699442719117.7073
这是因为E12
表示E
左侧的数字乘以10 12 。
执行该号码和850.0
的添加后,您会得到结果
-1699442718267.7073
通过将小数点一直向左转换为科学记数法,您将获得程序打印的结果。