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.
Du bist auf dem Holzweg:
Delphi-Quellcode:
var
dt: TDateTime;
add: double;
begin
dt := Now();
writeln(FormatDateTime('hh:nn:ss,zzz', dt));
add := 1;
while (dt < (dt + add)) do
add := add / 10;
add := add * 10;
writeln(FormatDateTime('hh:nn:ss,zzz', dt+add));
writeln(FloatToStr(add));
readln;
end.
Ermittelt erst bei add=10E-12 gleiche Werte. 10E-11 Tage sind 864 Pikosekunden.
Ausgabe:
Code:
13:39:47,678
13:39:47,678
1E-11