Ver Mensaje Individual
  #1  
Antiguo 20-12-2005
ilichhernandez ilichhernandez is offline
Miembro
 
Registrado: oct 2005
Posts: 277
Reputación: 19
ilichhernandez Va por buen camino
Question Problemas con float....

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  //2
            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  //2
          Else
          Begin   //5
             If ((min <> '') and (max <> '')) then
                Begin  //6
                   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;   //6
            end;   //5               
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
__________________
[Lo que a veces es tan facil, a veces parece imposible]
Responder Con Cita