Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.111 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

System.Math.InRange(..) mit Epsilon?

  Alt 16. Dez 2016, 19:03
Delphi-Version: 5
Wenn man Fließkommazahlen mit einer bestimmten Genauigkeit vergleichen will macht man das z.B. so:
Delphi-Quellcode:
uses System.Math;

const
   epsilon = 1E-2;
begin
   if SameValue(a, b, epsilon) then [...]
end;
Wenn ich schauen will ob Zahl c zwischen a und b liegt kenne ich InRange:
Delphi-Quellcode:
uses System.Math;

begin
   if InRange(meineZahl, 10.5, 75.6) then [...]
end;
Ich kann aber nirgendwo ein Epsilon angeben. Wenn meineZahl nun 10.499999999999 ist, schlägt die Überprüfung fehl. Mir als Mensch ist es allerdings genau genug

Meine Frage: Gibt es da nichts fertiges in der Standard-Bibliothek?

Unter Vergleichsroutinen habe ich sonst nichts gefunden...
  Mit Zitat antworten Zitat