“表达式中的数字溢出”操作时间戳

时间:2017-05-05 09:53:20

标签: android exception numeric

我正在尝试通过每次迭代将时间戳设置为X天来迭代SQL查询。我注意到,我的日期在第25天回来后就开始回归废话。我发现Android Studio在此代码示例中的第二行显示“表达式中的数字溢出”警告:

int daysBack = 25;
long dayBeginningMilis = getTodaysBeginningMilis() - 86400000 * daysBack;

getTodaysBeginningMilis是我不言自明的方法。为什么会显示此警告? 86400000是24小时内的milis数。

1 个答案:

答案 0 :(得分:2)

看来这部分" 86400000 * daysBack"导致数字溢出,因为两个数字都是整数,乘法导致整数超出范围。为了解决这个问题,我已经制作了所有类型的长类型:

long daysBack = 25L;
long dayBeginningMilis = getTodaysBeginningMilis() - 86400000L * daysBack;