0
我敢肯定,这不奇怪,而我不明白的文档,但为什么:Java的龙怪的结果
long myLong = 3600*24*365*70;
System.out.println(String.valueOf(myLong));
显示-2087447296
时显然不是3600 * 24 * 365结果* 70?
我敢肯定,这不奇怪,而我不明白的文档,但为什么:Java的龙怪的结果
long myLong = 3600*24*365*70;
System.out.println(String.valueOf(myLong));
显示-2087447296
时显然不是3600 * 24 * 365结果* 70?
尝试
long myLong = 3600L*24*365*70;
为你的代码是乘以为INT,然后转换成一个长。作为int的值溢出int的最大值,但长时间可以为OK。
这可能帮助 http://stackoverflow.com/questions/6332392/multiplication-operation-in-java-is-resulting-in-negative-value – hece 2014-09-02 06:10:59
整数溢出发生的事情。让他们中的任何一个变长。这样可以避免停止发生整数乘法。 – 2014-09-02 06:11:17