【问题标题】:Modulus returning divide by zero exception模数返回除以零异常
【发布时间】:2017-08-03 05:21:24
【问题描述】:

下面的代码在第 10 行抛出一个除以零的异常。

int s2=10,mn=20;
n = 4*s2;  
i = n-1; 
j = 1;
while(i!=0){
    j*=2;
    i--;
}
Random rand=new Random();
r = Math.abs(rand.nextInt(4*mn)) % j;  // this line returns divide by zero exception

【问题讨论】:

  • 很好的定位。你有什么问题?
  • 我想知道为什么,对于那个特殊情况。所有其他情况都可以正常工作
  • 我认为它会发生,因为当您计算 2^40 时会出现整数溢出。
  • 所以将数据类型更改为 long 可以解决问题,对吧??
  • 您的dowhile 吗?

标签: java


【解决方案1】:

当你在玩大数字时,你一定会得到 Integer Overflow

【讨论】:

    【解决方案2】:

    你需要在try-catch块中做代码。所以catch块会捕获异常,你可以随意处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多