CompareValue

woolfik
CompareValue
Moduł: Math
```delphi function CompareValue(const A, B: Integer): TValueRelationship; overload; function CompareValue(const A, B: Int64): TValueRelationship; overload; function CompareValue(const A, B: Single; Epsilon: Single = 0): TValueRelationship; overload; function CompareValue(const A, B: Double; Epsilon: Double = 0): TValueRelationship; overload; function CompareValue(const A, B: Extended; Epsilon: Extended = 0): TValueRelationship; overload; ``` `CompareValue` pozwala porównywać liczby zmiennoprzecinkowe wg zadanej tolerancji. Jeżeli dwie liczby są wystarczająco blisko siebie, są one uważane za równe. Wartość Epsilon jest wartością dozwoloną tolerancji.

TValueRelationship przyjmuje wartości:

  • LessThanValue - wartość -1
  • EqualsValue - wartość 0
  • GreaterThanValue - wartość 1

Przykład wywołania:

var
  A : Single;
  B : Single;
  C : Single;
begin
  A := 23.0;
  B := 23.0;
  C := 23.1;

  // Porównanie dwóch identycznych wartości
  case CompareValue(A, B) of
    LessThanValue    : ShowMessage('A < B');
    EqualsValue      : ShowMessage('A = B');
    GreaterThanValue : ShowMessage('A > B');
  end;

  // Porónanie dwóch różnych wartości
  case CompareValue(A, C) of
    LessThanValue    : ShowMessage('A < C');
    EqualsValue      : ShowMessage('A = C');
    GreaterThanValue : ShowMessage('A > C');
  end;

  // Porównanie dwóch różnych wartości z tolerancją+/- 0,2
  case CompareValue(A, C, 0.2) of
    LessThanValue    : ShowMessage('A < C');
    EqualsValue      : ShowMessage('A = C');
    GreaterThanValue : ShowMessage('A > C');
  end;
end;

Wyniki dla powyższych przykładów:

A = B
A < C
A = C 

1 komentarz