无法获得Math.Abs​​(-2147483648)的价值

时间:2013-04-21 13:20:17

标签: c#

这是我的代码。

string strTemp = "";
for (int i = input1; i <= input2; i++)
{
    strTemp = Math.Abs(i).ToString();
    //other stuff here
}

当input1的值为-2147483648时,我得到错误

  

否定二进制补码数的最小值无效。

我有点得到的是,这是由于溢出异常。 但我怎么能克服这个呢?有任何建议请。

1 个答案:

答案 0 :(得分:14)

+2147483648大于int的最大值,即2 31 - 1.
相反,您可以使用long;其最大值为2 63 - 1。

如果这对你来说还不够;使用BigInteger