Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-12-2005
ilichhernandez ilichhernandez is offline
Miembro
 
Registrado: oct 2005
Posts: 277
Poder: 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
  #2  
Antiguo 20-12-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Pues los float se comparan como números normales:

Código Delphi [-]
if Campo1.AsFloat > Campo2.AsFloat then
  ShowMessage('Campo1 mayor!')
else if Campo2.AsFloat > Campo1.AsFloat then
  ShowMessage('Campo2 mayor!')
else
  ShowMessage('Iguales!');

Me parece que vos los estas comparando como strings, pero entonces tenes que, por ejemplo

Código Delphi [-]
  if '9' > '1500' then
    ShowMessage('la cadena "9" es mayor que la cadena "1500"');

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 20-12-2005
ilichhernandez ilichhernandez is offline
Miembro
 
Registrado: oct 2005
Posts: 277
Poder: 19
ilichhernandez Va por buen camino
gracias....
__________________
[Lo que a veces es tan facil, a veces parece imposible]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:25:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi