日期:2014-05-20  浏览次数:20761 次

Java里面double数据+double数据的奇怪现象,求解释
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;
}
}
}

大家运行一下,为什么会得到那么奇怪的结果呢??

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


对财务之类的精确度要求高的使用BigDecimal。