hola otra vez....tengo un grave problema de float.....tengo datos que vienen de una tabla, los leo y tengo valores resultados, minimos y maximos, entonces debo compararlos, para saber si esta en el rango de minimo y maximo, para esto realizo la comparacion y luego si cumple el rango le doy tag 4 y si esta fuerza de rango le doy tag 5, lo he echo de la siguiente manera.....
Código Delphi
[-]
With dm.tcomparafinal Do
Begin
ana := FieldByName('analisis').AsString;
res := FieldByName('resultado').AsString;
uni := FieldByName('unidad').AsString;
min := FieldByName('minimo').AsString;
max := FieldByName('maximo').AsString;
If isnumber(res) then
begin
if isfloat(res) then
begin
fres := StrtoFloat(res);
end
Else
Begin
fres := strtoint(res);
end;
end;
if isnumber(min) then
begin
if isfloat(min) then
begin
fres := StrtoFloat(min);
end
Else
Begin
fres := strtoint(min);
end;
end;
If isnumber(max) then
begin
if isfloat(max) then
begin
fres := StrtoFloat(max);
end
Else
Begin
fres := strtoint(max);
end;
end;
If ((min = '') and (max= '')) then
Begin
caption := '---->' + ' Análisis no comparado';
tag := 4;
end;
If ((min = '') and (max <> '')) then
Begin caption := '---->' + ' Análisis válido es menor o igual a :' + max;
If ((fres) > (fmax)) then
begin
tag := 5;
end
Else
Begin
tag := 4;
end;
end Else
Begin If ((min <> '') and (max <> '')) then
Begin caption := '---->' + ' Análisis válido dentro del rango : ' + min + ' -- ' + max;
If ((fres > fmin) and (fres < fmax)) then
Begin
tag := 4;
end
Else
Begin
tag := 5;
end;
end; end; end;
Al hacer la comparacion no compara correctamente los valores y por lo tanto me coloca los tag de manera no correcta generandome problemas posteriores....lo hew ruteado y no se cual es el error, tal vez los float no se comparan asi.... quizas.... no,lo se...... agradeceria enormemente una ayuda !!
Gracias