AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Rundungsfehler bei MinutesBetween und Secondsbetween
Thema durchsuchen
Ansicht
Themen-Optionen

Rundungsfehler bei MinutesBetween und Secondsbetween

Ein Thema von khh · begonnen am 13. Jul 2015 · letzter Beitrag vom 13. Jul 2015
Antwort Antwort
Seite 2 von 2     12   
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#11

AW: Rundungsfehler bei MinutesBetween und Secondsbetween

  Alt 13. Jul 2015, 13:03
Zwischenschritt weglassen ändert nix
Ist schon eigenartig

beim richtigen Ergebnis von 10 std. steht in begin 42209.125 und in ende 42209.541666666664
beim Fehler mit 11 stunden steht in begin 42173.166666666664 und in ende 42173.625

Warum sind denn die Nachkommawerte so unterschiedlich lang?
In der Datenbank stehen "lesbar" bei beiden Beispielen volle Stunden
24.07.2015 03:00:00 und 24.07.2015 13:00:00
und
18.06.2015 04:00:00 und 18.06.2015 15:00:00
Karl-Heinz

Geändert von khh (13. Jul 2015 um 13:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#12

AW: Rundungsfehler bei MinutesBetween und Secondsbetween

  Alt 13. Jul 2015, 15:18
Warum sind denn die Nachkommawerte so unterschiedlich lang?
Wenn Du dies durcharbeitest, dann hast Du eine Vorstellung davon.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Rundungsfehler bei MinutesBetween und Secondsbetween

  Alt 13. Jul 2015, 15:45
Warum sind denn die Nachkommawerte so unterschiedlich lang?
In der Datenbank stehen "lesbar" bei beiden Beispielen volle Stunden
24.07.2015 03:00:00 und 24.07.2015 13:00:00
und
18.06.2015 04:00:00 und 18.06.2015 15:00:00
Weil Du wie viele andere auch, auf Fließkommazahlen hereingefallen bist. Stark vereinfacht gesagt, ist eine Fließkommazahl (double,single) nur eine "ungefähre" Angabe. In Deinem Falle kann ich Dir nur raten, die Zeiten auf Sekunden/Minuten seit (DeinZeitnullpunkt) umzurechnen, und dann kannst Du soviel subtrahieren und addieren wie Du lustig bist. (Sogar Dividieren geht, wenn Du mit dem entsprechend kleinen Fehler leben kannst).

Da für DateTime ein Fließkommaformat zur Speicherung gewählt wurde kannst Du damit rechnen, aber das ist beinahe so sinnvoll als wolltest Du Deine Telefonnummer von Deiner Faxnummer abziehen, um die Nummer Deines Appartments zu erhalten.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz