Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: StringToDateTime macht murx

  Alt 4. Sep 2012, 19:25
'korrekt' ist so ne Sache, denn die TDateTime-Werte sind Floating-Point und Du hast es hier mit einem klassischen FP-Rundungsproblem zu tun.

Die Zeit '10:00:00' wird als 10/24 = 5/6 repräsentiert, was eine rationale Zahl mit unendlicher Periode ist und somit nicht 100% korrekt als floating point darzustellen ist. Hinzu kommt noch, das viele einfache Dezimalzahlen auch nicht sauber als FP darzustellen sind. Blöde Sache.

Der TDateTime-Wert ist also garantiert nicht exakt '10 Uhr morgens', sondern irgendwie ein paar Nanomilliwasweissichsekunden geringer. Der Debugger wird nun so blöd programmiert sein, und irgend eine Frickelformatierung verwenden (jedenfalls wohl nicht 'DateTimeToStr') und deshalb etwas anderes anzeigen. Aber auch die DateTimeToStr-Variant zeigt nicht genau den richtigen Wert an, sondern rundet (aka schummelt) auch ein wenig. Nur eben so, das Du zufrieden bist. Und darauf kommts ja an
  Mit Zitat antworten Zitat