gpt4 book ai didi

java - 为什么我的 Java 数学错误?

转载 作者:行者123 更新时间:2023-12-01 16:23:24 25 4
gpt4 key购买 nike

在下面的代码中,我看不出 T1 和 T3 有什么不同。当然我的计算器说它们不是。

public class longTest {
public static final long T1 = 24 * 60 * 60 * 1000 * 30;
public static final long T2 = 24 * 60 * 60 * 1000;
public static final long T3 = T2 * 30;

public static void main(String[] args) {

System.out.println(T1);
System.out.println(T2);
System.out.println(T3);
}
}

那么为什么我会得到以下输出:

-1702967296
86400000
2592000000

这个示例程序中也不只是System.out.println。当我在 Eclipse 中使用 T1 并将鼠标悬停在变量上时,我会得到显示相同值的注释。

java version "1.6.0_33" OSX

最佳答案

由于 int 不能大于 2,147,483,647,因此出现溢出。最终值不超出 long 类型的范围,但算术本身将数字视为 int,除非您明确声明它们是 long > 值(value)观。

试试这个:

public class LongTest {

public static final long T1 = 24L * 60 * 60 * 1000 * 30;
public static final long T2 = 24L * 60 * 60 * 1000;
public static final long T3 = T2 * 30;

public static void main(String[] args) {
System.out.println(T1);
System.out.println(T2);
System.out.println(T3);
}
}

关于java - 为什么我的 Java 数学错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62208830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com