Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-06-2011
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
Numero Mayor igual , Menor igual... Problema

Buenos dias, tengo un problema estoy realizando una aplicacion en donde arrojo un numero como resultado, y realizo una operacion para darle a ese numero un valor depende de lo que de el resultado...

Es decir si el resultado va de 1 a 50, entonces en NPROMEDIO voy a obtener un "2", si va de 50 a 70 en N PROMEDIO obtendre un "3"... asi tengo hasta el momento la sentencia:

Código Delphi [-]
if (npromedio.Text>='0') and (npromedio.Text<='34,99') then
begin
npromedio.Text:='0'
end

    else

if (npromedio.Text>='35') and (npromedio.Text<='45,99') then
begin
npromedio.Text:='1'
end

    else

if (npromedio.Text>='46') and (npromedio.Text<='74,99') then
begin
npromedio.Text:='2'
end

    else

if (npromedio.Text>='75') and (npromedio.Text<='95,99') then
begin
npromedio.Text:='3'
end

    else

if (npromedio.Text>='96') and (npromedio.Text<='100') then
begin
npromedio.Text:='4';
end;

El problema es que cuando el resultado es 100 me coloca en NPROMEDIO "0" aun cuando le digo que sera "4", intente con otro TEDIT y me da el mismo resultado...tengo solo problemas cuando es 100...cuando va de 1 a 99 todo esta bien!

Si podrian guiarme se los agradeceria

Un millon de gracias!
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
Responder Con Cita
  #2  
Antiguo 27-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
me ha pasado que cuando se utilizo cadenas (con numeros) para comparaciones, se genera algun tipo de inconsistencia

trata de pasar las cadenas a numero

Código Delphi [-]
 
if (strtoint(npromedio.Text)>=0) and (strtoint(npromedio.Text)<=34,99) then
begin
npromedio.Text:='0'
end
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 27-06-2011
aposi aposi is offline
Miembro
 
Registrado: dic 2006
Posts: 146
Poder: 18
aposi Va por buen camino
cuando en npromedio.text es 100, o es 100,00 ?? En formato texto, como es ti caso, 100,00 es mayor que 100
Código:
if (npromedio.Text>='96') and (npromedio.Text<='100,00') then
 begin
   npromedio.Text:='4';
 end;
otra solucion seria:
Código:
if (npromedio.Text>='96') then
 begin 
  npromedio.Text:='4';
 end;
Responder Con Cita
  #4  
Antiguo 27-06-2011
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
Me genera un error de tipos no compatibles

Código:
[DCC Error] Evaluacion.pas(684): E2008 Incompatible types
Aposi:

Es "100" ese numero es el resultado de la suma de otros...las otras formas ya las he intentado y nada que resulta, sin embargo si coloco SOLO:

Código Delphi [-]
if (npromedio.Text=100)  then
begin
npromedio.Text:='4'
end


Ahi si me escribe "4"
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."

Última edición por ZiriusB fecha: 27-06-2011 a las 16:58:35.
Responder Con Cita
  #5  
Antiguo 27-06-2011
aposi aposi is offline
Miembro
 
Registrado: dic 2006
Posts: 146
Poder: 18
aposi Va por buen camino
Pensandolo mejor, como dice oscarac es mejor passar a numero el valor
si es texto 100 es menor de 96...
Responder Con Cita
  #6  
Antiguo 27-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por aposi Ver Mensaje
Pensandolo mejor, como dice oscarac es mejor passar a numero el valor
si es texto 100 es menor de 96...
en cadenas 1 < 9
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 27-06-2011
aposi aposi is offline
Miembro
 
Registrado: dic 2006
Posts: 146
Poder: 18
aposi Va por buen camino
Cita:
Empezado por oscarac Ver Mensaje
en cadenas 1 < 9
Código:
valor := '100' ;

   if valor <= '96' then showmessage ('menor')


   else showmessage ('mayor');
Responder Con Cita
  #8  
Antiguo 27-06-2011
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
Cita:
Empezado por oscarac Ver Mensaje
me ha pasado que cuando se utilizo cadenas (con numeros) para comparaciones, se genera algun tipo de inconsistencia

trata de pasar las cadenas a numero

Código Delphi [-]
 
if (strtoint(npromedio.Text)>=0) and (strtoint(npromedio.Text)<=34,99) then
begin
npromedio.Text:='0'
end
Me genera un error

Código:
[DCC Error] Evaluacion.pas(684): E2008 Incompatible types
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
Responder Con Cita
  #9  
Antiguo 27-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
no sera 34.99 en lugar de 34,99?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #10  
Antiguo 27-06-2011
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
Cita:
Empezado por oscarac Ver Mensaje
no sera 34.99 en lugar de 34,99?
Creo que es por esto:

Código Delphi [-]
npromedio.text := Floattostr(StrToFloat(edit13.Text) +  StrToFloat(edit14.Text));

Es una linea que tengo antes de el primer codigo que pase...
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."
Responder Con Cita
  #11  
Antiguo 27-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Me genera un error
Código:
[DCC Error] Evaluacion.pas(684): E2008 Incompatible types
Hola.

El error sucede en esta línea:
Código Delphi [-]
if (strtoint(npromedio.Text)>=0) and (strtoint(npromedio.Text)<=34,99) then

Y es por que npromedio.Text puede asumir un valor real, por lo tanto la comparación correcta es:
Código Delphi [-]
if (StrToFloat(npromedio.Text) >= 0) and (StrToFloat(npromedio.Text) <= 34,99) then

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #12  
Antiguo 27-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
bueeeeeenoooo
la cosa estaba por ahi gracias ecfisa
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #13  
Antiguo 27-06-2011
ZiriusB ZiriusB is offline
Miembro
 
Registrado: oct 2010
Posts: 86
Poder: 14
ZiriusB Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

El error sucede en esta línea:
Código Delphi [-]
if (strtoint(npromedio.Text)>=0) and (strtoint(npromedio.Text)<=34,99) then

Y es por que npromedio.Text puede asumir un valor real, por lo tanto la comparación correcta es:
Código Delphi [-]
if (StrToFloat(npromedio.Text) >= 0) and (StrToFloat(npromedio.Text) <= 34,99) then

Saludos.

Código Delphi [-]
if (StrToFloat(npromedio.Text)>=0) and (StrToFloat(npromedio.Text)<=34.99) then
npromedio.Text:='0';

Exacto, lo cambie en todos y listo...ademas de cambiar la "," por el "."

Gracias amigos...
__________________
"Ningun precio es alto por el privilegio de ser uno mismo..."

Última edición por ZiriusB fecha: 27-06-2011 a las 18:35:02.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ordenar digitos de menor a mayor luisito2011 Varios 18 07-05-2011 00:37:59
¿como hago para comprobar si un nº de versión es mayor o menor? cocute Varios 8 21-01-2010 12:31:13
Fecha de mayor a menor alcides Varios 2 15-02-2008 17:46:09
FireBird.- Domino que sea entero mayor o igual a cero sakuragi Firebird e Interbase 1 08-09-2006 12:10:09
ordenar un DBGrid de mayor a menor jmlifi Varios 2 03-11-2005 17:36:34


La franja horaria es GMT +2. Ahora son las 08:08:03.


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