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的误差是怎么产生的?
有没有人能说明一下跟本的原因!