Zitat von
Tyrael Y.:
Zitat von
Luckie:
Plus einem Deltawert, sonst stimmt der Vergleich 23 Stunden und 59 Minuten.
Wozu das?
Weil der Wecker dann 24/7 klingelt.
@AlexII:
Eigentlich ist das gar nicht schwer, man muss nur einmal das Problem erkennen.
Du vergleichst 2 Werte mit unterschiedlicher Genauigkeit.
Um diese trotzdem auf "Gleichheit" prüfen zu können, musst du ein bisschen ungenauer werden.
In deinem Fall musst du dazu eine zeitrange einbauen.
Also einen bestimmten Zeitintervall, indem gesagt wird, die Zeit stimmt mit der anderen überein.
Als Beispiel mal Floatwerte:
Delphi-Quellcode:
procedure TBluppForm.button1Click(Sender: TObject);
function SingleEquals(const AVal1, AVal2: Single; const Precision: Single = 1.0): Boolean;
begin
Result :=
(AVal2 > AVal1 - Precision) and
(AVal2 < AVal1 + Precision)
end;
begin
if SingleEquals(2.0, 3.2) then
MessageDlg('1. Equals', mtInformation, [mbOK], 0);
if SingleEquals(2.0, 3.2, 1.5) then
MessageDlg('2. Equals', mtInformation, [mbOK], 0);
end;
Ich hoffe das Problem ist jetzt verständlicher geworden