Ich möchten in einer Tabelle (Dienstplan) die geleistete Arbeitszeit im Monat berechnen.
Dabei stehen Beginn und Ende jeweils Format [hh]:mm in der Tabelle1.
In Tabelle2 wird im ersten Teil der für den jeweiligen Tag die Arbeitsstunden (als Bruchteil eines Tages) berechnet und ebenfalls im Format [hh]:mm dargestellt.
Im Zweiten Teil erfolgt nun Berechnung für den Monat. Alle Tage werden zusammengezählt und die Summe mit 24 multipliziert und als Zahl mit zwei Dezimalstellen dargestellt.
Nun das Problem:
Die Zahlen für den Bruchteil eines Tages haben "unendliche" Dezimalstellen, und bei Berechnung kommen "seltsame" Dezimalzahlen heraus.
So werden aus 4 Stunden eben 4,02 Stunden; und der Fehler summiert sich übers Jahr.
Wie kann ich diese (Un-)Genauigkeiten bei der Berechnung (nicht nur optisch)ausschalten.
(Un-)Genauigkeiten beim Rechnen mit Zeiten
Moderator: Moderatoren
Hey Schiri1,
Tia, viel Möglichkeiten bleiben dir da nicht. Um Fehler zu vermeiden, müsstest du mit ganzen Zahlen rechnen - also die Stunden erst in ganze Zahlen umwandeln (mit gewünschter Genauigkeit - also z.B. mit zwei Stellen * 100, Kommareste abschneiden) dann deine Additionen durchführen, und schliesslich wieder rückwandeln. Das ist mit Formeln alles lösbar, aber möglicherweise macht es dann schon mehr Sinn, gleich eine entsprechende Basic-Anwendung zu schreiben.
Viele Grüße
Thomas
Leider gar nicht. Zeitangaben werden intern als Double-Variable gespeichert und weiterverarbeitet (Länge 8 Byte). Insofern ist die Dezimalzahl nicht "unendlich", und es tritt immer ein Fehler auf. Dass der aber bereits so massiv durchschlägt??? na ja, du wirst es probiert haben.Wie kann ich diese (Un-)Genauigkeiten bei der Berechnung (nicht nur optisch)ausschalten.
Tia, viel Möglichkeiten bleiben dir da nicht. Um Fehler zu vermeiden, müsstest du mit ganzen Zahlen rechnen - also die Stunden erst in ganze Zahlen umwandeln (mit gewünschter Genauigkeit - also z.B. mit zwei Stellen * 100, Kommareste abschneiden) dann deine Additionen durchführen, und schliesslich wieder rückwandeln. Das ist mit Formeln alles lösbar, aber möglicherweise macht es dann schon mehr Sinn, gleich eine entsprechende Basic-Anwendung zu schreiben.
Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Ich verstehe dein Zeitmodell nicht, ich denke da liegt der Fehler im Ansatz der Berechnung. Entweder du hast eine Jahresarbeitszeit, eine Monatsarbeitszeit, eine Wochenarbeitszeit oder eine Tagesarbeitszeit. Die Berechnung der Tagesarbeitszeit aus der Jahresarbeitszeit heraus in Bruchteilen Jahresarbeitsstunden pro Tag wird nicht klappen, da solltets du deinen Ansatz ändern und vielleicht das entsprechende Zeitmodel hier reinstellen , dann kann man auch einen Lösungsansatz finden
Hubi
Hubi