0

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

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo info@tmr-service.com,

    versuch es damit:

    ---

    ceil(number(Arbeitszeit) / 1000 / 60 / 60 * 4) / 4

    ---

    Leo

    • Marcus_Rinko
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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?