SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: mguerrerop en Sábado 26 de Abril de 2008, 13:50
-
Buenas, ¿por qué sale ésto en un código tan simple?
¿Por qué num3 no toma al final el valor "5"?
¿Hay alguna forma de conseguirlo?
#include <iostream.h>
#include <stdlib.h>
int main()
{
float num1,num2,num3;;
num1=5;
num2=num1+1e30;
num3=num2-1e30;
cout<<(num3);
system("PAUSE");
return 0;
}
-
¿Por qué num3 no toma al final el valor "5"?
¿Hay alguna forma de conseguirlo?
1. Porque num3 es flotante (float), y los numeros flotantes siempre tiene errores de redondeo, nunca obtendras numeros exactos si utilizas float, recuerda que son aproximaciones al numero verdadero.
2. No hay manera, tendras que vivir con ello ;)
-
Considero que en este caso no se debe a las aproximaciones, sino a que un tipo float no tiene los bytes suficientes para poder almacenar una variable de esa magnitud, por ello, desde la primera operación, el tipo llegó a su límite y le es imposible poder guardar el valor resultante.