JAVA:这样求0.01到1.0的和为什么不对呢?我估计的和是50.50啊 为啥不对腻~呜呜呜~

2024-11-17 12:40:18
推荐回答(4个)
回答1:

class KKK
{
public static void main(String args[])
{
double sum=0.0,i=0.01;
for(int k=1;k<=100;k++,i+=0.01)
{
sum+=i;
System.out.println(k+" "+i+" 0.01至1.0的和"+sum);}
}
}
首先计算机处理小数并不是我们想像的那样理想 你要知道
先把你的代码修改成这样 定义了一个int型的k来索引for循环 同时再打印k和i
会发现结果和你估计的一样 但K循环了100次 i也循环了100次 第100次i的值是1.0000000000000007
比你的代码里循环限定的i上限1.0要大 所以你的代码只循环了99次 最后i=1.0并没有加进sum里 因为第100次i的值是1.0000000000000007比1.0大 所以结果是49.50

回答2:

=。=!

回答3:

你把代码贴出来啊

回答4:

你debug一年,看看,估计是递增循环时有问题