![]() |
![]() |
| Paypal | 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.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#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 |
|