SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: jubilubi en Lunes 19 de Enero de 2004, 23:13

Título: Datos Demasiados Grandes
Publicado por: jubilubi en Lunes 19 de Enero de 2004, 23:13
¿Como le puedo hacer para que en un programa acepte numeros muy grandes, aunque esto afecte el resultado final?
Entiendo que existen rangos en los tipos de datos, pero quisiera que me aceptara cualquier clase de numero, desde un 5, pasando por 89.315, hasta 10e-140.
Se que va a ocurrir un error de truncamiento al introducir datos muy grandes, pero no importa, lo que me interesa es que realize las operaciones aunque el resultado sea solamente una aproximación del resultado real. Les agradeceria mucho su ayuda.
Título: Re: Datos Demasiados Grandes
Publicado por: plaf en Martes 20 de Enero de 2004, 01:18
podrias manejar los numeros guardandolos en notacion cientifica, con un float q sea el numero y un int el exponente
por ejemplo si quieres sumar 2 numeros primero ves si los exponentes son parecidos, si son muy diferentes desprecias el mas chico, y si son parecidos divides el mayor por 10 elevado la diferencia de exponentes y los sumas. y asi haces ese tipo de cosas con las demas operaciones
Título: Re: Datos Demasiados Grandes
Publicado por: chuidiang en Martes 20 de Enero de 2004, 09:27
Utiliza double por todos lados. Este tipo es el que te dará el máximo rango posible.

De todas formas, sigue teniendo un límite (enorme, pero lo tiene). Si aun así se te queda pequeño, no te queda más remedio que hacerte tu propio código para tratamiento de todos estos números.

Se bueno.
Título: Re: Datos Demasiados Grandes
Publicado por: QliX=D! en Martes 20 de Enero de 2004, 15:36
O usar alguna libreria para numeros grandes, hay varias dando Vueltas por la net.
Título: Re: Datos Demasiados Grandes
Publicado por: CiRRuS en Miércoles 28 de Enero de 2004, 16:50
Librerias de números gordos que puedes encontrar son:

Para C la LIP, que usa variables verylong.

Para C++ la de LiDIA, que usa variables bigint. Personalmente prefiero mejor esta, a parte que en C++ se hace más llevadero el uso de operadores y demás.

Nos vemos
Título: Re: Datos Demasiados Grandes
Publicado por: nicokiki en Jueves 29 de Enero de 2004, 12:58
Yo creo q lo mejor es que vos hagas una libreria q maneje numeros grandes.

Yo hace unos años hice una en object pascal para una materia y no era complicado. Solo necesitarias librerias de lista enlazada y saber como hacer una suma y una resta (la multiplicacion y la division son sumas y restas).

Creo q eso seria mejor. Pensa q si usas listas dinamicas podes representar numeros extremadamente gigantes (tan grandes como memoria para alocar nodos).

Salu2!!!!!!!!!!
P.D. : De ultima usa double
Título: Re: Datos Demasiados Grandes
Publicado por: CiRRuS en Miércoles 4 de Febrero de 2004, 16:48
Implementarlos uno mismo  :blink: , ufff, ami me toco implementar una especie de bigint (número en base 2^16) ufff, y aquello era un poco lioso. Aunq sinceramente, una vez currada la suma y la resta, lo demás es ponerte a trabajar.

No sé, pero antes de tirarle horas a programar, yo probaría con alguna librería aunque como dice el dicho "El buen artesano se fabrica  :comp:  sus propias herramientas"  :D .

Nos vemos