Android/Java:long为负值,但不超过max_值
我试图在android应用程序中进行一些基本的计算,将Android/Java:long为负值,但不超过max_值,java,android,long-integer,Java,Android,Long Integer,我试图在android应用程序中进行一些基本的计算,将Date.getTime()值与一些计算值进行比较 我在数据库查询期间进行的计算是: long minus = pauseDays * 24 * 60 * 60 * 1000; 所以基本上我计算了pauseDays的毫秒值。如果pauseDays变得更大(我说的是90天左右),就会发生一些奇怪的事情。计算结果为负数 奇怪的是,结果应该是7776000000,因此它应该比Long.MAX\u值小得多。有人能给我解释一下为什么这里有一个负数吗?
Date.getTime()
值与一些计算值进行比较
我在数据库查询期间进行的计算是:
long minus = pauseDays * 24 * 60 * 60 * 1000;
所以基本上我计算了pauseDays
的毫秒值。如果pauseDays
变得更大(我说的是90天左右),就会发生一些奇怪的事情。计算结果为负数
奇怪的是,结果应该是
7776000000
,因此它应该比Long.MAX\u值小得多。有人能给我解释一下为什么这里有一个负数吗?原因可能是因为pauseDays
是int
类型,对吗?然后将其乘以另一组int
s,然后将其转换为long
考虑:
其输出为:
-813934592
7776000000
请注意,第一个长减号使用整数生成其值。第二个long minul
使用所有长整型值。谢谢,这解决了我的问题:)我完全忽略了一个事实,即pauseDays是一个INT值。
-813934592
7776000000