小编Gil*_*pio的帖子

Java乘法运算行为

我写了一个方法来将给定数字从天转换为毫秒:

private long expireTimeInMilliseconds;
...
public void setExpireTimeInDays(int expireTimeInDays)
{
   expireTimeInMilliseconds = expireTimeInDays * 24 * 60 * 60 * 1000;
}
Run Code Online (Sandbox Code Playgroud)

我很难弄明白我做错了什么.现在我的问题: 这个错误是如此明显吗?

纠正方法:

private long expireTimeInMilliseconds;
...
public void setExpireTimeInDays(int expireTimeInDays)
{
   expireTimeInMilliseconds = ((long) expireTimeInDays) * 24 * 60 * 60 * 1000;
}
Run Code Online (Sandbox Code Playgroud)

如果我在计算之前没有将整数转换为long,那么我得到一个完全错误的结果.

java overflow integer-overflow

8
推荐指数
2
解决办法
6651
查看次数

标签 统计

integer-overflow ×1

java ×1

overflow ×1