java - 奇怪的 Java 数学结果

标签 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,所以它的大小应该是264,足够大了。我对为什么没有准确存储这些值感到困惑。

最佳答案

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

关于java - 奇怪的 Java 数学结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34069831/

相关文章:

java - TestNG XML 在包中找不到测试类 (java)

java - 具有泛型类型的 Map.Entry 的树集实现

python - 求解大数的模线性同余

math - 向量数量不同的两个图节点之间的余弦相似度计算

algorithm - 安排具有重叠周期性任务的工作人员

java - 绘制到自定义缓冲区类 [Java]

java - EhCache:选择逐出策略

algorithm - 确定 (x^2 + x + 1)^n 中 x^m 项的系数是偶数还是奇数

c++ - Eigen 和 glm 产品产生不同的结果

java - 使用 Java 转换 XML 文件