FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Digitos en un INT
Hola amigos
tengo que realizar una pequeña validacion en un int de 11 digitos, el codigo que uso es el siguiente Código:
int a,b,c; a = StrToInt(DBEdit11->Text); c = 1; for (int i = 0; i <= 12; i++) { b = a / c; c = c * 10; if (i == 11){} else { if (b == 0 && i < 11) { ShowMessage("Al numero insertado le faltan digitos " + IntToStr(b)); Abort(); } if (i >= 11 && b != 0) { ShowMessage("Al numero insertado le sobran digitos " + IntToStr(b)); Abort(); } } } Código:
--------------------------- Debugger Exception Notification --------------------------- Project PROJECT.exe raised exception class EConvertError with message ''12345678912' is not a valid integer value'. Process stopped. Use Step or Run to continue. --------------------------- OK Help --------------------------- Gracias de antemano
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código. Cuando miras fijamente al abismo, este te devuelve la mirada oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_ oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_ oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_ oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_ oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_ ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_ ________________________________________________________________________________ Última edición por lmpadron fecha: 15-08-2011 a las 15:00:39. |
#2
|
||||
|
||||
No puedes usar un int, el número mayor que almacena es 2^32 que sería 2.147.483.648
Así que debes usar otro tipo o simplemente usa un string para almacenar la cadena. |
#3
|
||||
|
||||
Como dice Casimiro un int tiene como valor máximo sin signo es 4294967295. (con signo es la mitad).
Puedes usar un __int64 para almacenarlo. Me pregunto si no será mas fácil, además, el análisis de sus cifras desde el mismo Edit en el que se introduce, antes de pasarlo a un __int64 Saludos. |
#4
|
||||
|
||||
Si trato de usar String me da el siguiente error
Código:
--------------------------- Debugger Exception Notification --------------------------- Project VB.exe raised exception class EVariantOverflowError with message 'Overflow while converting variant of type (String) into type (Integer)'. Process stopped. Use Step or Run to continue. --------------------------- OK Help ---------------------------
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código. Cuando miras fijamente al abismo, este te devuelve la mirada oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_ oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_ oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_ oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_ oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_ ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_ ________________________________________________________________________________ |
#5
|
||||
|
||||
Hola Impadrón.
Creo que Casimiro y escafandra ya te lo han dicho todo, el problema es que tu número es muy grande. Aquí, tenés los tipos numéricos básicos, bits que ocupan y el tipo de uso que podes darles. Cita:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#6
|
||||
|
||||
pues no encuentro que tipo de valor usar !!!! en esencia lo que quiero hacer es contar los digitos del DBEdit y saber si tiene 11, mas o menos. Con int no puedo, con float no puedo, con double jejejje lo que me saca en los mensajes es IE-5 jajajaja pues ni idea !!!!
Como puedo contar los digitos de un numero y definir si se pasa o no del numero de digitos deseado ??????? Gracias a todos por su ayuda y disculpen que pregunte tanto pero es que realmente no entiendo como se puede hacer !!!
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código. Cuando miras fijamente al abismo, este te devuelve la mirada oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_ oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_ oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_ oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_ oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_ ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_ ________________________________________________________________________________ |
#7
|
||||
|
||||
Y, ¿por qué no simplemente tomas la longitud de la cadena de texto del Edit, en lugar de convertirlo a entero?
// Saludos |
#8
|
||||
|
||||
Hola.
Código:
if (strlen(DBEdit1->Text.c_str()) < 11) ShowMessage("El número es menor a 11 digitos"); else if (strlen(DBEdit1->Text.c_str()) > 11) ShowMessage("El número es mayor a 11 digitos"); else ShowMessage("El número es igual a 11 digitos"); Edito: Mientras redactaba este mensaje veo que román ya te había sugerido lo mismo... Agrego: Y se me escapó que escafandra lo había mencionado en su primer mensaje...
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 16-08-2011 a las 00:01:09. |
#9
|
||||
|
||||
Hola.
Saludos. |
#10
|
||||
|
||||
gracias amigo, nunca se me ocurrio esa idea !!! y cuando la postearon no la entendí jejejeje lo siento de veras
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código. Cuando miras fijamente al abismo, este te devuelve la mirada oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_ oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_ oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_ oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_ oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_ ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_ ________________________________________________________________________________ |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
intercalar digitos | luisito2011 | Varios | 6 | 04-12-2012 18:38:57 |
Promedio.. digitos primos .. | luisito2011 | Varios | 3 | 07-05-2011 02:54:02 |
Extract month con dos digitos | Cañones | Firebird e Interbase | 2 | 17-08-2010 21:10:10 |
Incremento de los digitos de un numero | lily21 | Varios | 8 | 10-02-2010 16:54:29 |
Ingresar un núm de 10 digitos... | coronado | Varios | 1 | 12-10-2006 13:49:18 |
|