Hi, ich arbeite an einem Rechner Funktion die es erlaubt extrem hohe Zahlen auszurechnen(Nach dem schriftlichen Prinzip wie man es in der Schule gelernt hatte). Wo man beim PC nur ein Error bekommt, bekommt man bei mir ein Resultat. So weit alles gut. Aber ich hab das Problem das er irgendwie nullen durcheinander wirft. Z.B wenn ich 10+10 rechne bekomme ich nicht 20 sondern 002. Das Problem tritt leider sehr häufig vor und der Code ist somit nicht groß brauchbar. Ich hab mal den Ort markiert(Mit 2 Kommentaren) wo möglicherweise der Fehler könnte sein. Hoffentlich könnt ihr mir helfen.
LG
LG
VB.NET-Quellcode
- Module Module1
- Sub Main()
- Console.WriteLine(optplus(Console.ReadLine()))
- Main()
- End Sub
- Function optplus(ByVal num As String)
- If num = "clear" Then
- Console.Clear()
- Console.WriteLine()
- Else
- Try
- Dim numm As Array = Split(num, "+")
- Dim result As String = ""
- Dim temp As Integer = "0"
- Dim temp1 As Integer = "0"
- Dim temp2 As Integer = "0"
- Dim count As Integer = "0"
- Dim ueber As Integer = "0"
- For Each var0 As String In numm(0)
- For Each var1 As String In numm(1)
- If temp2 = count Then
- temp1 = var1
- End If
- temp2 = temp2 + 1
- Next
- count = count + 1
- temp2 = 0
- temp = temp1 + var0
- temp = temp + ueber
- //Mögliche Positions des Fehlers
- If temp >= 10 Then
- //Hier wird überschlagen, und hier vermute ich den Fehler... Aber finden tue ich den leider nicht ?(
- temp1 = Left(temp, 1)
- If temp = 10 Then
- temp = "0"
- Else
- temp = Right(temp, 1)
- End If
- Else
- temp1 = 0
- temp = Right$(temp, 1)
- End If
- ueber = temp1
- //Ende Fehler Position
- result = temp & result
- Next
- Return ueber & result
- Catch ex As Exception
- Return "Es wurde kein Ergebniss erzeilt: ERROR"
- End Try
- End If
- End Function
- End Module