【问题标题】:If statement between ulong and 0ulong 和 0 之间的 if 语句
【发布时间】:2022-11-14 03:23:57
【问题描述】:

我正在尝试进行此计算,但它试图将 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 的正数

【问题讨论】:

    标签: c# types c#-3.0


    【解决方案1】:

    它抛出异常,因为a 的值无效。 ulong 表示 Unsigned Long — 它不接受负数。并且价值 897324782938287523942985 是对于 C# 中的所有整数类型来说都太大了.

    更新: a 应该是 double 类型。首先,它接受负数,其次,它接受非常大的价值观— 897324782938287523942985 对其有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 2021-12-29
      • 2015-02-12
      • 1970-01-01
      • 2016-05-07
      • 1970-01-01
      • 2012-03-11
      相关资源
      最近更新 更多