wil*_*kas 0 android exception numeric
我尝试通过将每次迭代的时间戳设置为 X 天前来迭代 SQL 查询。我注意到,一旦搜索 25 天前的日期,我的日期就开始返回无意义的内容。我发现 Android Studio 在此代码示例中的第二行显示“表达式中的数字溢出”警告:
int daysBack = 25;
long dayBeginningMilis = getTodaysBeginningMilis() - 86400000 * daysBack;
Run Code Online (Sandbox Code Playgroud)
getTodaysBeginningMilis是我的不言自明的方法。为什么会显示这个警告?86400000是24小时内的英里数。
看来这部分“86400000 * daysBack”会导致数字溢出,因为两个数字都是整数,而乘法会导致整数越界。为了解决这个问题,我将所有数字都设置为长类型:
long daysBack = 25L;
long dayBeginningMilis = getTodaysBeginningMilis() - 86400000L * daysBack;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1456 次 |
| 最近记录: |