public class Test{ public static void main(String[] args)
{
double i=2.5;
double j=3.4;
for (int k=1; k<9; k++)
{
System.out.println(i);
i=i+j;
}
}
}大家运行一下,为什么会得到那么奇怪的结果呢??

解决方案 »

  1.   

    java里面对于double型的运算,有时是会出现误差的,其实是因为计算机里都是通过二进制进行运算的,所以出现这种误差也是在所难免,在java里面为了解决问题,可以利用BigDecimal类来解决,其实你也可以通过移动小数点先转化成整型,然后再计算,最后将结果相应的移动小数点,这样也是一种解决方法
      

  2.   

    这个是正常的,浮点运算就是这样的。
    对财务之类的精确度要求高的使用BigDecimal。