Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#10

AW: TDate: Vergleich = 0 funktioniert nicht immer - warum?

  Alt 17. Mai 2024, 09:41
Deine "0" könnte halt eigentlich ein 0.00000000000000000000001 sein, oder so.
Dann müsste das aber irgendwo so dort eingetragen worden sein. Obwohl ein TDate formell ein TDateTime ist und somit auch Zeitanteile speichern kann, ist die Bedeutung aber eindeutig auf ein Datum, also einen bestimmten Tag, festgelegt. Wenn dort dennoch ein Zeitanteil drin steht, dann ist das ein Fehler in der Zuweisung und ich finde man sollte diesen finden, anstatt jetzt alle Vergleiche zu korrigieren.

Die Frage ist also eigentlich: Wo kommt der Datumswert her, der dort eigentlich 0 sein sollte, es aber offenbar nicht ganz ist. Gerade eine 0 ist intern exakt darstellbar (siehe TExtendedHelper.SpecialType), was das Unschärfeargument in diesem Fall ins Leere laufen lässt. Mit einer Anpassung der Vergleiche (auf > 0) wird die eigentliche Ursache für das unterschiedliche Verhalten nur verdeckt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat