public static strictfp void main(String[] args) {
double d1 = 0d;
double d2 = 0d;
System.out.println(d1 = 12.51111d);
System.out.println(d2 = Math.floor(12.51111d));
System.out.println(d1 - d2);
}
控制台打印:
12.51111
12.0
0.5111100000000004
javascript里出现过同样的问题,如:alert((122.9 - 122).toFixed(19)),结果IE和火狐有细微差别。
12.51111-12.0很明显等于0.51111
0.0000000000000004的误差是怎么产生的?
有没有人能说明一下跟本的原因!