代码:
public class Main{
public static void main(String[] a){
long t=24*1000*3600;
System.out.println(t*25);
System.out.println(24*1000*3600*25);
}
}
这会打印:
2160000000
-2134967296
为什么?
感谢大家的回复。
唯一的办法是在数字后面加L吗?
我试过 (long)24*1000*3600*25
但这也是否定的。
最佳答案
您达到了 int
类型的最大值,即 Integer.MAX_VALUE
或 2^31-1。它因此包裹,因此显示负数。
有关此的即时解释,请参阅此漫画:
关于java - 将长解析为负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3957937/