Re: Fehlerhafte Ausgabe in Tabelle
31.07.2002 20:33:45
Rolf, Lgh.
'Wenn ich das Programm anhalte und den Wert der Funktionsvariable "Auf_Runden" anzeigen lasse ...
1. Wie machst Du das? Mit MsgBox Auf_Runden? >> dann wird Dir weiterhin nur ein String dargestellt!
2. Bei Deiner Funktion sind die Kommastellen eine Ganzzahl. Wenn Du statt CSng CDbl nimmst - höhere Genauigkeit -, wird meines Erachtens - das aus Deiner Sicht - richtige Ergebnis ermittelt. Oder
3. und wenn Du
statt
schreibst, sind ab der dritte Stelle im Ergebnis nur NullenDer richtige Code muß lauten:
Function Auf_Runden(Zahl As String) As Double
Dim hilfsstring As String, index As Integer
Zahl = WorksheetFunction.Substitute(Zahl, ".", ",")
If InStr(1, Zahl, ",") <> 0 Then
hilfsstring = Mid(Zahl, InStr(1, Zahl, ",") + 2)
Zahl = Mid(Zahl, 1, InStr(1, Zahl, ",") + 1)
For index = Len(hilfsstring) To 2 Step -1
If CInt(Mid(hilfsstring, Len(hilfsstring), 1)) >= 5 Then
hilfsstring = CStr(CInt(hilfsstring) + 10)
End If
hilfsstring = Left(hilfsstring, Len(hilfsstring) - 1)
Next index Auf_Runden = CDbl(Zahl) + CDbl(hilfsstring / 100)
End If
End Function
Code eingefügt mit Syntaxhighlighter 1.13
Im übrigen schließe ich mich wegen des kaufmännischen Runden meinen Vorgängern an https://www.herber.de/forum/archiv/140to144/t142630.htm
Rolf