【发布时间】:2020-05-14 10:53:29
【问题描述】:
请检查以下Java代码:
public class Test{
public static void main(String []args){
long start = 1572544800000L;
long end = 1635703200000L;
int d = 10;
int val = (int)(start + d + end + 0.0);
// value 2147483647
System.out.println("value: " + val);
}
}
在这里,如果我更改 d 的值,输出总是相同的 2147483647。这是Int 最大值。
如果我将0.0 更改为0,则输出符合预期。
任何人都可以在Java 中解释这种行为
谢谢
【问题讨论】:
标签: java casting integer-overflow