Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: sudsaat am 14.04.11 - 15:32:09
-
Hallo zusammen,
ich weiß dass dieses Thema bereits 100x angesprochen wurde und kenne auch die Beiträge hier und den Beitrag aus Best-Practices. Dennoch würde mich interessieren, ob hier jeder Notes-Client das gleiche rechnet und habe dafür eine kleine DB erstellt. Meine Vermutung seit 8 ist nämlich, dass die @Round-Function mittlerweile ebenfalls kaufmännisch rundet.
Da ich nur einen 8.52er Client parat habe, beginne ich hier eine Tabelle und würde mich auf euer Feedback und Ergebnisse freuen:
| Input | 0,024 | 0,025 | 0,034 | 0,035 |
| LS-runden | 0,02 | 0,02 | 0,03 | 0,04 |
| LS kfm runden | 0,02 | 0,03 | 0,04 | 0,04 |
| @ runden | 0,02 | 0,03 | 0,03 | 0,04 |
| @ kfm runden | 0,02 | 0,03 | 0,03 | 0,04 |
OK, habe gerade bemerkt, dass die Berechnung der LS-kfm-runden nicht passt (da verwende ich testweise ebenfalls die Round), hat da jemand eine Funktion parat die in LS kaufmännisch rundet?
Würde mich freuen wenn ihr mit euren Clients kurz die obigen Zahlen durchspielen und hier posten könntet.
Die Datenbank findet ihr im Fuß dieses Beitrages ;)
Danke und Grüße Thomas :)
-
hmmm.... sollte eigentlich nicht so schwer sein, probiers mal mit folgendem:
Function RoundItCorrect ( sngNumber As Single, intNumberOfDigitsBeforeSeparator As Integer ) As Single
Dim sngMultiplier As Single
Dim sngTemp As Single
Dim sngDiff As Single
sngMultiplier = Potenz10 ( -intNumberOfDigitsBeforeSeparator )
sngTemp = sngMultiplier * sngNumber
sngDiff = 0.5 ' wegen dem kaufmännischen Runden 0,5 an der richtigen Stellen addieren und dann abschneiden
RoundItCorrect = Fix ( sngTemp + sngDiff ) / sngMultiplier
End Function
Function Potenz10 (inVal As Single) As Single
' berechnet 10^y
Potenz10 = Exp ( inVal! * Log(10) )
End Function
Damit kannst du alles auf x-Stellen vor- und hinter dem Komma berechnen.
Die Funktion RoundItCorrect braucht nur die Zahl und die Anzahl Stellen vor dem Komma (negative Werte sind Anzahl Stellen hinter dem Komma!).
Und fertig ist die Laube ...
War mal wieder schön in meinem alten Mathewissen vom Gymnasium zu kruschteln...
Grüsse
M. Weller