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

来源:百度知道 编辑:UC知道 时间:2024/06/07 15:47:01

class KKK
{
public double sum()
{
double sum=0.0,i=0.01;
for(i=0.01;i<=1.0;i+=0.01)
{
sum+=i;

}
return sum;
}

public static void main(String args[])
{
double result;
KKK a=new KKK();
result=a.sum();
System.out.println("0.01至1.0的和"+result);
}
}

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

=。=!

你把代码贴出来啊

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