VB.NET数学操作(大型添加)



你好,我需要一些帮助,以尝试添加两个大数字:例如:我正在使用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变量,这几乎可以肯定是导致您的问题的原因。如果您有要转换为BigIntegerString,则在已知值有效时应使用BigInteger.Parse,或者当该值不为BigInteger.TryParse时。

您的代码并没有真正的意义,因为您首先假设隐式转换可以,但是随后您继续使用TryParse。它变得更加荒谬,因为您使用TryParse来填充看似错误的BigInteger变量。您需要了解您的代码在写作之前应该做什么,否则您最终会胡说八道,并且不知道它不做您不知道您想做的事情。

最新更新