gpt4 book ai didi

Java 除法返回错误结果

转载 作者:行者123 更新时间:2023-12-02 12:49:47 24 4
gpt4 key购买 nike

 public static void main(String[] args) {
final long a= 24 * 60 * 60 * 1000 * 1000;
final long b= 24 * 60 * 60 * 1000;

System.out.println(a/b);
}

它应该返回 1000,但为什么返回 5?

最佳答案

24 * 60 * 60 * 100086400000。如果乘以1000,就会溢出int类型(因为int可以容纳的最大值是2147483647 远小于 86400000000),您将得到 a5006540​​80

然后,当您将结果除以 86400000 时,您将得到 5

为了解决这个问题,您需要显式指定乘法的结果将为long - 这是因为 Java 中的所有数字运算符都会生成整数,除非明确指示生成其他一些值数字类型。

只需在某些操作数上附加一个 L 就足够了:

final long a = 24 * 60 * 60 * 1000 * 1000L;

关于Java 除法返回错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31336101/

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