0
我很困惑它是如何发生的。产出不如预期。存储在long变量中的值不像预期的那样
public class Test2 {
public static void main(String arg[]){
int interval = 43200;
long tempInterval = interval * 60000;
System.out.println(tempInterval);
}}
预期的输出是2592000000,但我得到-1702967296。这可能是天真的 问题,但我坚持这一点。
'60000'是'int','interval'是'int'。所以'interval * 60000'是'int * int',它是'int'。将'int'结果存储在'long'变量中不会改变它的值。你可能需要'60000L'字面值来表示'long'类型,所以你最终会得到'int * long = long'(现在是重复的地方)。 – Pshemo
和http://stackoverflow.com/questions/17221254/1000-60-60-24-30-results-in-a-negative-number – Tunaki