webForumDet fria alternativet

System.OverflowException: Arithmetic operation resulted in an overflow?

.NETur .NET

2 svar · 660 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Frågan#1
Private Function getDiff(ByVal objCount As Integer, ByVal diffSum As Decimal) As Integer
    Return 100 * ((objCount * 4.5 - diffSum) / (objCount * 4.5))
End Function

Antar att jag skickar in nullvärde eller så men går det att kringgå på ett smidigt sätt?

Medlem sedan juni 20008 205 inlägg
#2

Manualen skrev:

The exception that is thrown when an arithmetic, casting, or conversion operation in a checked context results in an overflow.

Låter alltså som att resultatet av uträkningen (eller någon del av den) blir för stort för att få plats i en Integer (vilket jag antar är synonymt med Int32) Använd UInt32 eller Int64 (eller UInt64, eller Decimal), alt. se över om du kan ändra på uträkningen (dvs skala ner den) så att den inte ger så stora tal.

Medlem sedan nov. 20017 144 inlägg
#3

Ok, tack för nu. :)

129 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)