Visual Basic 2010 溢出错误
Visual Basic 2010 Overflow Error
所以我正在制作一个数字长度可以无限扩展的游戏,我已经达到了 21 亿。这会产生溢出错误。
Arithmetic operation resulted in an overflow.
在我的代码中有这两个变量:
Dim coal As BigInteger
Dim totalCoal As BigInteger
我将这两个应用程序设置保存到:
My.Settings.coal = coal.ToString()
My.Settings.totalCoal = totalCoal.ToString()
我不能 post 超过 2 link 病 link 一个包含图像的 .rar 文件。
https://dl.dropbox.com/s/s30knl44p9luhjy/Screenshots.rar?dl=0
我主要担心无法解决此问题,因为我已经分发了应用程序 link。我需要知道如何使大数的值的长度不受限制。
' Import Code
Dim data As New StreamReader("C:\Temp\Data.txt")
Dim value As String = ""
Dim dataArray(1) As String
Dim i As Integer = 0
Dim setValue As Integer = 0
Do Until data.Peek = -1
'Get 1 Value from Text File at a time
value = data.ReadLine()
'Place Value into Array
dataArray(i) = value
'Output
saveValues.Items.Add(dataArray(i))
'Set Values
If setValue = 0 Then
My.Settings.coal = saveValues.Items(0)
setValue = 1
ElseIf setValue = 1 Then
My.Settings.totalCoal = saveValues.Items(1)
setValue = 2
End If
i += 1
If setValue = 2 Then
Application.Restart()
End If
Loop
' Export Code
saveValuesSet.Text =
My.Settings.coal & Environment.NewLine &
My.Settings.totalCoal
Using writer As StreamWriter = New StreamWriter("C:\Temp\Data.txt")
writer.WriteLine(saveValuesSet.Text)
End Using
20 亿是 Integer
数据类型的最大值,您可以使用 Long
来让您达到大约 9 * 10^18。
如果您想使用任何大小的数字,您应该查看 System.Numerics.BigInteger。您需要在项目中添加对 System.Numerics 的引用才能使用 BigInteger。
如果你想在 Settings 中存储一个 BigInteger,你可以创建一个 String 类型的 Setting 并在那里存储字符串表示(当然 String 可能非常长)。
My.Settings.BigIntegerString = myBigInteger.ToString
所以我正在制作一个数字长度可以无限扩展的游戏,我已经达到了 21 亿。这会产生溢出错误。
Arithmetic operation resulted in an overflow.
在我的代码中有这两个变量:
Dim coal As BigInteger
Dim totalCoal As BigInteger
我将这两个应用程序设置保存到:
My.Settings.coal = coal.ToString()
My.Settings.totalCoal = totalCoal.ToString()
我不能 post 超过 2 link 病 link 一个包含图像的 .rar 文件。 https://dl.dropbox.com/s/s30knl44p9luhjy/Screenshots.rar?dl=0
我主要担心无法解决此问题,因为我已经分发了应用程序 link。我需要知道如何使大数的值的长度不受限制。
' Import Code
Dim data As New StreamReader("C:\Temp\Data.txt")
Dim value As String = ""
Dim dataArray(1) As String
Dim i As Integer = 0
Dim setValue As Integer = 0
Do Until data.Peek = -1
'Get 1 Value from Text File at a time
value = data.ReadLine()
'Place Value into Array
dataArray(i) = value
'Output
saveValues.Items.Add(dataArray(i))
'Set Values
If setValue = 0 Then
My.Settings.coal = saveValues.Items(0)
setValue = 1
ElseIf setValue = 1 Then
My.Settings.totalCoal = saveValues.Items(1)
setValue = 2
End If
i += 1
If setValue = 2 Then
Application.Restart()
End If
Loop
' Export Code
saveValuesSet.Text =
My.Settings.coal & Environment.NewLine &
My.Settings.totalCoal
Using writer As StreamWriter = New StreamWriter("C:\Temp\Data.txt")
writer.WriteLine(saveValuesSet.Text)
End Using
20 亿是 Integer
数据类型的最大值,您可以使用 Long
来让您达到大约 9 * 10^18。
如果您想使用任何大小的数字,您应该查看 System.Numerics.BigInteger。您需要在项目中添加对 System.Numerics 的引用才能使用 BigInteger。
如果你想在 Settings 中存储一个 BigInteger,你可以创建一个 String 类型的 Setting 并在那里存储字符串表示(当然 String 可能非常长)。
My.Settings.BigIntegerString = myBigInteger.ToString