你好,我需要一些帮助,以尝试添加两个大数字:例如:我正在使用BigInteger进行操作,但是在值太大之后我会得到此错误:
这是我的代码:
Dim one As System.Numerics.BigInteger = message.Text
Dim two As System.Numerics.BigInteger = mykey.Text
System.Numerics.BigInteger.TryParse(message.Text, two)
sum.Text = (one + two).ToString
您的代码实际上没有意义。我刚刚测试了这样的两个BigInteger
值的添加:
Dim one As BigInteger = BigInteger.Parse("99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999")
Dim two As BigInteger = BigInteger.Parse("9999999999999999999999999999999999999999999999999999999999999999999999999")
Console.WriteLine((one + two).ToString)
Console.ReadLine()
这样:
Dim str1 = "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"
Dim str2 = "9999999999999999999999999999999999999999999999999999999999999999999999999"
Dim one As BigInteger
Dim two As BigInteger
BigInteger.TryParse(str1, one)
BigInteger.TryParse(str2, two)
Console.WriteLine((one + two).ToString)
Console.ReadLine()
它的工作正常与预期的两次。
您确实需要转动Option Strict On
,因为您的代码将String
值分配给BigInteger
变量,这几乎可以肯定是导致您的问题的原因。如果您有要转换为BigInteger
的String
,则在已知值有效时应使用BigInteger.Parse
,或者当该值不为BigInteger.TryParse
时。
您的代码并没有真正的意义,因为您首先假设隐式转换可以,但是随后您继续使用TryParse
。它变得更加荒谬,因为您使用TryParse
来填充看似错误的BigInteger
变量。您需要了解您的代码在写作之前应该做什么,否则您最终会胡说八道,并且不知道它不做您不知道您想做的事情。