gpt4 book ai didi

java - Java 中的正除法,负结果

转载 作者:行者123 更新时间:2023-12-01 07:26:13 25 4
gpt4 key购买 nike

我对此感到非常困惑。我将两个正数相除并得到负结果(我使用的是 Java)。

long hour = 92233720368L / (3600 * 1000000 );

我得到的结果是-132。

但是如果我将它们分成两个长数,我会得到正确的结果:

long hour1 = 92233720368L / (3600000000L ); 

然后我得到结果:25

我想知道为什么会发生......

提前谢谢您! :)

最佳答案

您必须添加L3600 末尾或1000000 :

示例:

long hour = 92233720368L / (3600 * 1000000L );

这是发生的事情:

System.out.println(3600 * 1000000); // Gives -694967296 because it exceeds the max limit of an integer size. So 92233720368L / -694967296 = -132

这正是您的除法中发生的情况,支配符是一个整数,并且由于我上面所说的原因被视为负数。所以为了考虑long类型的乘法结果你应该添加 L之后36001000000 之后

关于java - Java 中的正除法,负结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24269808/

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