ULong.MaxValue 的数值在 Visual Basic.NET 中被认为是溢出
Numeric value of ULong.MaxValue is considered an overflow in Visual Basic.NET
在视觉中 Basic.NET ULong.MaxValue=18,446,744,073,709,551,615.
以下代码运行良好:
Dim a As ULong = ULong.MaxValue
下面的代码returns数字溢出错误
Dim b As ULong = 18446744073709551615
导致此错误的原因是什么?
编译器假定任何太大而不是 Integer
的整数都是 Long
,当然你的数字不适合 Long
。您需要将 UL 后缀添加到文字数字以表明它是 ULong
而不仅仅是 Long
。
Dim b As ULong = 18446744073709551615UL
在视觉中 Basic.NET ULong.MaxValue=18,446,744,073,709,551,615.
以下代码运行良好:
Dim a As ULong = ULong.MaxValue
下面的代码returns数字溢出错误
Dim b As ULong = 18446744073709551615
导致此错误的原因是什么?
编译器假定任何太大而不是 Integer
的整数都是 Long
,当然你的数字不适合 Long
。您需要将 UL 后缀添加到文字数字以表明它是 ULong
而不仅仅是 Long
。
Dim b As ULong = 18446744073709551615UL