奇怪的Java数学结果

时间:2015-12-03 15:28:12

标签: java math

非常简单的问题,但也许有人可以解释。我有两行代码:

long millisPerYear = 365*24*60*60*1000;
System.out.println("millis per year = " + millisPerYear);

我预计产量为31 536 000 000但我得到1 471 228 928。

如果我从公式中删除1000,答案是正确的,但是1000将其推到边缘。

变量格式为Long,因此它的大小应为2 64 ,足够大。我很难理解为什么价值不能准确存储。

1 个答案:

答案 0 :(得分:16)

您仅使用int在右侧进行计算。将365替换为365L以在long中执行计算。