我试着做这个计算,但是它试图把一个ulong转换成一个int,看看它是否小于0。我试过去掉int,把它放在0前面,但是它根本不起作用。
ulong a = -897324782938287523942985;
ulong b = 95;
if ((int)(a + (b * 10000)) < 0)
{
a += (b*10000)
} else {
a += b;
}这就产生了错误:
Exception trown: 'System.OverflowException' in mscorlib.dll我需要它给我一个正数,刚好超过0到低于95。
发布于 2022-11-13 19:11:12
它引发异常,因为a的值无效。ulong的意思是没有符号的长-它不接受负数。值897324782938287523942985对于C#中的所有整数类型来说都太大了。
更新:a应该是double类型。首先,它接受负数,其次,它接受很大的值- 897324782938287523942985对它有效。
https://stackoverflow.com/questions/74423916
复制相似问题