我正在尝试运行一些具有大值的数学公式,因此我使用的是Double
数据类型。但是如果输入大值,我仍然会得到NaN的答案。那我怎么解决这个问题呢?
例如,如果我传递Varx = 3且countx = 1230,我得到的结果为NaN。
Public Function EulerForPro(ByVal Varx As Integer, ByVal Countx As Integer) As Double
Dim Result1 As Double = 1
Dim Result2 As Double = Varx
Dim Result As Double = 0
For i = 1 To Countx
Result1 = Result1 + (Math.Pow(-1, i) * Math.Pow(Varx, (2 * i)) / factx(2 * i))
Next
For i = 1 To Countx
Result2 = Result2 + (Math.Pow(-1, i) * Math.Pow(Varx, ((2 * i) + 1)) / factx((2 * i) + 1))
Next
Result = Result1 + Result2
Label2.Text = Result1
Label3.Text = Result2
Label4.Text = Result
End Function
答案 0 :(得分:2)
答案 1 :(得分:0)
您可以尝试使用Decimal
数据类型。它可以保存大约7,9 x 10^28
的整数值(确切的数字是2^96 - 1
,因为它可以使用其128位的96位来存储值的整数部分)。但是,它是一种复杂的数据类型,您应该仔细考虑如何在代码中使用它。并非所有隐式转化都有效,尤其是在使用Double
时。
有关Decimal
的确切规格,请参阅MSDN on decimal。