为什么我在java中使用乘法(*)得到错误的结果

时间:2018-03-30 05:37:11

标签: java

我是Java的新手,只想计算一年中的mili秒数,但结果并不像预期的那样

long milisecondsInYear = 1000*60*60*24*365;
System.out.println(milisecondsInYear); // Expect 31536000000 but get 1471228928

请告诉我这个。提前谢谢。

1 个答案:

答案 0 :(得分:0)

无论何时进行任何计算,java都会假设并将其计算为int,即使您将结果保存在long变量中也是如此。

实际结果不适合int变量,因此您可以获得该值。

要解决这个问题,你需要在最后添加L让java知道这实际上很长。

long milisecondsInYear = 1000*60*60*24*365L;
System.out.println(milisecondsInYear); // Expect 31536000000 but get 1471228928