Betrifft: ab orgAnice CRM 2008

Frage:

Wie runde ich kaufmännische in orgBasic?

Lösung:

Function Runden(pdblWert As Double, plNachkommastellen As Long) As Double

‚ Rundet eine Zahl auf eine bestimme Anzahl von Nachkommastellen.

‚ Ab 5 wird aufgerundet.

Dim sZahl As String

Dim lKommaPosition As Long

Dim bAufrunden As Boolean

Dim sNachkommastellen As String

‚ Zahl in Zeichenkette umwandeln. Drei Zeichen zusätzlich

‚ als Nachkommastellen reservieren, um die Rundung zu umgehen

sZahl = Trim(Str(pdblWert, 50, plNachkommastellen + 3))

‚ Wir runden auf, wenn die drittletzte Stelle >= 5 ist

bAufrunden = Left(Right(sZahl, 3), 1) >= „5“

‚ Alle zusätzlichen Stellen können jetzt abgeschnitten werden

sZahl = Left(sZahl, Len(sZahl) – 3)

If bAufrunden Then

‚ Dezimaltrennzeichenposition bestimmen

lKommaPosition = Len(sZahl) – InStr(sZahl, „.“)

‚ Dezimaltrennzeichen ausschneiden

sZahl = Left(sZahl, Len(sZahl) – lKommaPosition – 1) & Right(sZahl, lKommaPosition)

‚ Wert um 1 erhöhen

sZahl = Trim(Str(Val(sZahl) + 1, Len(sZahl) + 1, 0))

‚ Dezimaltrennzeichen wieder einfügen

sNachkommastellen = Right(sZahl, lKommaPosition)

sZahl = Left(sZahl, Len(sZahl) – Len(sNachkommastellen)) & „.“ & sNachkommastellen

End If

Runden = Val(sZahl)

End Function

Oder

Function Runden(pdblWert As Double, plNachkommastellen As Long) As Double

‚ Rundet eine Zahl auf eine bestimme Anzahl von Nachkommastellen.

‚ Ab 5 wird aufgerundet.

Runden = Lng(pdblWert * 10 ^ plNachkommastellen + 0.5) / 10 ^ plNachkommastellen

End Function

Was this helpful?

1 / 0

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen