我已经开始阅读 Java8 的文档并尝试了不同的示例代码。发现以下奇怪的行为。
样品1
Double di = new Double(Math.pow(2,32-1));
System.out.printf("%f\n",di.doubleValue()); //2147483648.000000
int a= di.intValue();
System.out.println(a); //2147483647
样品2
Double di = new Double(Math.pow(2,32-1)) - 1.0;
System.out.printf("%f\n",di.doubleValue()); //2147483647.000000
int a= di.intValue();
System.out.println(a); //2147483647
为什么在这两种情况下,int 值返回相同的值?
慕森王
子衿沉夜
料青山看我应如是
相关分类