呵呵,你学过 计算方法 没有??
在计算机中的浮点数都是近似的数字。因为有些十进制数字是二进制数字无法表示的,只能做一定程度的近似。
所以就会有现在这样的结果,这不是JAVA的错,而是现代的个人计算机还不能达到非常高的精度。
还有 用 double 类型的时候,用 ++ -- 等运算符都用可能出现问题
在计算机中的浮点数都是近似的数字。因为有些十进制数字是二进制数字无法表示的,只能做一定程度的近似。
所以就会有现在这样的结果,这不是JAVA的错,而是现代的个人计算机还不能达到非常高的精度。
还有 用 double 类型的时候,用 ++ -- 等运算符都用可能出现问题
(C) 版权所有 1985-1998 Microsoft Corp.D:\>c:C:\>javac *.javaC:\>java test
0.09000000000000001
1.3877787807814457E-17C:\>看什么?输出结果完全正常!
{ public static void main(String[] args)
{
double a = 0.07;
double b = 0.02;
double c = (a + b);
double d = 0.09; System.out.println((float)c);
System.out.println((int)(c - d));
}
}