AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Konvertierungsfehler bei Funktion
Thema durchsuchen
Ansicht
Themen-Optionen

Konvertierungsfehler bei Funktion

Ein Thema von khh · begonnen am 8. Jun 2015 · letzter Beitrag vom 9. Jun 2015
Antwort Antwort
Seite 2 von 3     12 3      
khh

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

AW: Konvertierungsfehler bei Funktion

  Alt 9. Jun 2015, 08:23
alsoooo,
ich hab jetzt ein numerisches Ergebnis mit

0,083333333 was 2 Stunden entspricht

14:00 - 12:00

wie rechne ich jetzt am besten mit dem Tagesbruchteil weiter?
Einfach in Sekunden, Minuten, Stunden umrechnen ?

Da bekomme ich mit meinen 9 Nachkommastellen wohl Rundungsfehler rein
Karl-Heinz

Geändert von khh ( 9. Jun 2015 um 08:37 Uhr)
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#12

AW: Konvertierungsfehler bei Funktion

  Alt 9. Jun 2015, 08:45
Da bekomme ich mit meinen 9 Nachkommastellen wohl Rundungsfehler rein
Ein Punkt der 9. Stelle nach dem Komma entspricht 86 Nanosekunden. Wenn Du größere Genauigkeit brauchst...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#13

AW: Konvertierungsfehler bei Funktion

  Alt 9. Jun 2015, 08:46
siehe Delphi-Referenz durchsuchenDateUtils (Delphi) und SysUtils ... Lazarus k.A. wo.

Mit HoursPerDay oder MinsPerDay multiplizieren und Letzeres kann man auch als Integer rounden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
khh

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

AW: Konvertierungsfehler bei Funktion

  Alt 9. Jun 2015, 09:15
danke dir, gibt es bei Lazarus auch
Karl-Heinz
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#15

AW: Konvertierungsfehler bei Funktion

  Alt 9. Jun 2015, 09:29
Welchen Anteil haben Stunden, Minuten und Sekunden am Tagesanteil?

Die 1 steht für 1 Tag oder 24 Stunden. Deshalb berechnet man mit
Delphi-Quellcode:
h := 1 / 24;
...
eine Stunde;
Delphi-Quellcode:
h := 1 / 24 / 60;
...
eine Minute;
Delphi-Quellcode:
h := 1 / 24 / 60 / 60;
...
eine Sekunde;
Delphi-Quellcode:
h := 1 / 24 / 60 / 60 / 1000;
...
eine Millisekunde;

Wobei Delphi 1 Millisekunde mit Double gar nicht erfassen kann. Somit unterliegen die Millisekunden den Rundungsfehlern. Damit sollte man also nicht rechnen.

15 Minuten können somit so berechnet werden:
Delphi-Quellcode:
h := 1 / 24 / 60 * 15;
...
5 Stunden so:
Delphi-Quellcode:
h := 1 / 24 * 5;
...
300 Sekunden so:
Delphi-Quellcode:
h := 1 / 24 / 60 / 60 * 300;
...
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#16

AW: Konvertierungsfehler bei Funktion

  Alt 9. Jun 2015, 09:55
Wobei Delphi 1 Millisekunde mit Double gar nicht erfassen kann. Somit unterliegen die Millisekunden den Rundungsfehlern.
Stop, das kann man so nicht stehen lassen.

Ein Double stellt mehr als 15 signifikante Dezimalstellen dar. Ein Datum im jetzigen Zeitalter hat 5 Stellen vor dem Komma, so bleiben für die Uhrzeit 10 signifikante Ziffern übrig. Im Bereich von etwa A.D. 1700 bis 2200 wird ein Zeitstempel also einer Auflösung von <10ns dargestellt.

Dies gilt natürlich nicht für die Uhr des Rechners und auch nicht für das Format, das die Datenbank für die Speicherung solcher Werte verwendet.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#17

AW: Konvertierungsfehler bei Funktion

  Alt 9. Jun 2015, 10:10
Delphi TDataTime/Double kann Millisekunden erfassen und zwar noch die nächsten paar hundert oder tausend Jahre lang.
Je größer der Datumsteil wird, mit steigendem Abstand von 30.12.1899, desto kleiner wird die Genauigkeit im Nachkommateil.

[edit] Ich sollte F5 benutzen.
15 bis 16 (15,7 oder so)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 9. Jun 2015 um 10:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Konvertierungsfehler bei Funktion

  Alt 9. Jun 2015, 11:10
wie rechne ich jetzt am besten mit dem Tagesbruchteil weiter?
Einfach in Sekunden, Minuten, Stunden umrechnen ?
wofür brauchst Du es denn? Wenn Du mit den Trainingszeiten eines Ferrari auf dem Hockenheimring umgehen mußt, dann ist die Millisekunde wohl durchaus relevant, geht es um die Bewegung Deiner Schildkröte im Salatbeet sollte die Sekunde durchaus reichen.
Nicht umsonst rechnen z.B. Autowerkstätten auch nicht minutengenau ab.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#19

AW: Konvertierungsfehler bei Funktion

  Alt 9. Jun 2015, 11:34
Aus Erfahrungen die ich mit eine Projekt gesammelt habe kann ich sagen: 1/10 Sekunde ist drin; bei 1/100 Sekunde wird es schon kritisch, sollte aber noch drin sein; 1/1000 ist problematisch. Weniger vom System, als wegen Double.

//Edit:

Auf der anderen Seite, wenn man den Tag auf Null setzt, also kein Vorkommastellen hat, könnte evtl. auch die 1/1000 Sekunde erfasst werden. Ich hab es aber noch nicht getestet. Ist nur eine Theorie.

Geändert von Popov ( 9. Jun 2015 um 11:37 Uhr)
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#20

AW: Konvertierungsfehler bei Funktion

  Alt 9. Jun 2015, 12:11
Nicht umsonst rechnen z.B. Autowerkstätten auch nicht minutengenau ab.
Zum Teil sogar genauer als 1 Minute.

VW:
1h = 100ZE (ZE = Zeiteinheiten)
heißt also
1ZE = 36 Sekunden.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 06:49 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