在下面的代码中,我看不出 T1 和 T3 有什么不同。当然我的计算器说不是。
public class longTest {
public static final long T1 = 24 * 60 * 60 * 1000 * 30;
public static final long T2 = 24 * 60 * 60 * 1000;
public static final long T3 = T2 * 30;
public static void main(String[] args) {
System.out.println(T1);
System.out.println(T2);
System.out.println(T3);
}
}
那么为什么我会得到以下输出:
-1702967296
86400000
2592000000
在这个示例程序中,它也不仅仅是System.out.println。当我在 Eclipse 中有 T1 并将鼠标悬停在变量上时,我会得到显示相同值的注释。
java 版本“1.6.0_33”OSX
你会溢出,因为int
不能大于 2,147,483,647。最终值不超出范围long
类型,但算术本身将数字视为int
除非您明确声明它们是long
values.
尝试这个:
public class LongTest {
public static final long T1 = 24L * 60 * 60 * 1000 * 30;
public static final long T2 = 24L * 60 * 60 * 1000;
public static final long T3 = T2 * 30;
public static void main(String[] args) {
System.out.println(T1);
System.out.println(T2);
System.out.println(T3);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)