gpt4 book ai didi

java - 安卓/Java : long gets negative without exceeding max_value

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:01 25 4
gpt4 key购买 nike

我正在尝试在我的 Android 应用程序中进行一些基本计算,以将 Date.getTime() 值与一些计算值进行比较。

我在数据库查询期间所做的计算是:

long minus = pauseDays * 24 * 60 * 60 * 1000;

基本上我计算了 pauseDays 的毫秒值。如果 pauseDays 变大(我说的是 90 天左右),就会发生一些奇怪的事情。计算结果为负数。

奇怪的是,结果应该是 7776000000,所以它应该比 Long.MAX_VALUE 小很多。谁能向我解释为什么我在这里得到负数?

最佳答案

大概是因为pauseDaysint类型吧?然后将它乘以另一组 int然后将其转换为 long

考虑 this :

public class Main {
public static void main(String[] args) {
int pauseDays = 90;
long minus = pauseDays * 24 * 60 * 60 * 1000;
System.out.println(minus);

long pauseDaysL = 90L;
long minusL = pauseDaysL * 24L * 60L * 60L * 1000L;
System.out.println(minusL);
}
}

这个的输出是:

-813934592
7776000000

请注意,第一个 long minus 使用整数来生成其值。第二个 long minusL 使用所有长整数值。

关于java - 安卓/Java : long gets negative without exceeding max_value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12630927/

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