Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
Delphi XE8 Professional
|
Vergleich von Real-Werten ---> klappt nicht
27. Jan 2010, 13:00
Hallo,
nachfolgend der problematische Code:
Delphi-Quellcode:
Const
E96 : array[1..98] of Real =
(0, 1.0, 1.02, 1.05, 1.07, 1.1, 1.13, 1.15, 1.18, 1.21, 1.24, 1.27, 1.30, 1.33,
1.37, 1.40, 1.43, 1.47, 1.50, 1.54, 1.58, 1.62, 1.65, 1.69, 1.74, 1.78, 1.82,
1.87, 1.91, 1.96, 2.0, 2.05, 2.1, 2.15, 2.21, 2.26, 2.32, 2.37, 2.43, 2.49, 2.55,
2.61, 2.67, 2.74, 2.80, 2.87, 2.94, 3.01, 3.09, 3.16, 3.24, 3.32, 3.40, 3.48,
3.57, 3.65, 3.74, 3.83, 3.92, 4.02, 4.12, 4.22, 4.32, 4.42, 4.53, 4.64, 4.75,
4.87, 4.99, 5.11, 5.23, 5.36, 5.49, 5.62, 5.76, 5.90, 6.04, 6.19, 6.34, 6.49,
6.65, 6.81, 6.98, 7.15, 7.32, 7.50, 7.68, 7.87, 8.06, 8.25, 8.45, 8.66, 8.87, 9.09,
9.31, 9.53, 9.76, 10);
......
implementation
var
Rv : Real;
// Rv ist 634
for i := 2 to 98 do
if Rv = (E96[i-1] * multi) then // <<<<< wird nicht erkannt !!!!!!!!!!
begin
lb96Min.Caption := FloatToStr(E96[i-1] * multi) + ' Ohm';
lb96Max.Caption := '';
break;
end;
// <<<<< hier bekomme ich 634 und 649 zurück
for i := 1 to 98 do
if (Rv > E96[i-1] * multi) and (Rv < E96[i] * multi) then
begin
lb96Min.Caption := FloatToStr(E96[i-1] * multi) + ' Ohm';
lb96Max.Caption := FloatToStr(E96[i] * multi) + ' Ohm';
break;
end;
mehrmals nachgerechnet : Rv ist genau 634
multi ist ein Multiplikator, Typ Integer, hier 100
warum wird der direkte Vergleich nicht erkannt ?
Markus H.
|