Aufrundungsregel für Stundenabrechnung
Hallo Zusammen, ich habe einen Stundennachweis, der später zur Abrechnung genutzt wird. Die Arbeitszeiten müssen dabei auf volle Viertelstunden aufgerundet werden. Mittels round(number(Arbeitszeit) / 1000 / 60 / 60 * 4, 0) / 4
bereits gerundet. Nun wird allerdings kaufmännisch auf- oder abgerundet. Das möchte ich nicht, sondern standardmäßig aufrunden.
Ich dachte ich kann es mit einer if-Schleife lösen:
let gerundet := round(number(Arbeitszeit) / 1000 / 60 / 60 * 4, 0) / 4;
let nextgerundet := gerundet + 0.25;
if Arbeitszeit > gerundet then
nextgerundet
else
gerundet
end
Funktioniert soweit auch, nur dass es bei z.B. 10,5 auf 10,75 aufgerundet wird (Obwohl ich < und nicht <= als Verzweigungsbedingung habe?!?).
Nun zu meiner Frage: a) brauche ich überhaupt diese Schleife oder gibt es eine mir unbekannte Funktion? b) Wenn ich die schleife dafür benötige, warum habe ich dann den Rundungsfehler bei den Arbeitszeit = gerundet?
Danke für eure Hilfe.
2 Antworten
-
Hallo info@tmr-service.com,
versuch es damit:
---
ceil(number(Arbeitszeit) / 1000 / 60 / 60 * 4) / 4
---
Leo
-
Hey Leo,
super Vielen Dank! ceil() hat funktioniert.
Kannst du mir vielleicht für spätere Anwendungsfälle erklären, warum meine if-Schleife nicht funktioniert hat?
Content aside
- vor 4 JahrenZuletzt aktiv
- 2Antworten
- 334Ansichten