日期:2014-05-20 浏览次数:20795 次
double i = 0.80;
double j = 0.20;
double k = [color=#FF0000]0.89[/color];
double f = i+j+k;
System.out.println(f);
double i = 0.80;
double j = 0.20;
double k = [color=#FF0000]0.88[/color];
double f = i+j+k;
System.out.println(f);
double k = [color=#FF0000]0.89[/color];
------解决方案--------------------
无论是double,还是float,二进制位是有限的,很多小数都是无法精确表示的,遂有了这种问题
------解决方案--------------------
精度问题,所以才会有两个double类型的,不能用=来比较,要进行减法操作。
------解决方案--------------------
本来就存在的问题,精度问题。没什么好奇怪的。
------解决方案--------------------