在java中检查/防止算术溢出的最佳方法是什么?

时间:2010-09-10 20:33:30

标签: java overflow

  

可能重复:
  How can I check if multiplying two numbers in Java will cause an overflow?

正如大家可能知道的那样,一些编程难题要求其成员计算一个非常大的数字。

例如:

long a = 10000000000L;
long b = 10000000000L;
long c = a * b;
System.out.println(c);

上面的代码输出错误的输出,这是7766279631452241920.这种问题让我发疯了两次。因为我确信我的算法是正确的(我用较小的值测试它)但是更大的值打印错误的输出。

在我看来,使用BigInteger是最后的选择,因为我认为BigInteger的执行速度比原生数据类型(如int或long)慢。

检查/防止算术溢出是否发生的最佳方法是什么?请不要告诉我使用BigInteger。我已经知道了

0 个答案:

没有答案