Ver Mensaje Individual
  #7 (permalink)  
Antiguo 15/05/2011, 18:22
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: ¿Qué significa rango?

Hola,

Cita:
Iniciado por jesusgox Ver Mensaje
... Me habéis ayudado un montón, entonces y en definitiva, lo que quiere decir esque si yo a la variable en decimal float x=256.6 no valdría con float, sin embargo si en un programa le asigno la variable float con el número 254.4 sí me lo va a mostrar y almacenar correctamente en memoria ¿No?
Por último, lo que no he entendido es eso que llegue hasta 3.4e38, Pues no estabamos hablando de que puede llegar a 255? Porque 3.4^38 = 1.57108198 × 1020 ...
Nop, creo que posiblemente te estamos confundiendo más por que hay conceptos fundamentales que si no los comprendes bien desde el inicio después te va a ser mucho mas difícil comprenderlos, así sam90 puso del ejemplo de 256 pero yo lo compliqué bastante más, puesto que si y solo si llegara a suceder que intentas guardar un número fuera del rango suceden cosas inesperadas bastante difíciles de comprender.

Primero que todo las variables float tienen un rango positivo de 3.4e38 que no es lo mismo que 3.4^38. La notación científica significa que tienes que multiplicar el número por 10^n donde n es el exponente. http://es.wikipedia.org/wiki/Notaci%...ient%C3%ADfica

Osea que el rango de las variables float es:

-3400000000000000000000...(hasta juntar 38 ceros)
hasta
+340000000000000000000....(hasta juntar 38 ceros)

Pero se guardan de una manera muy especial, así que solamente se expresan los primeros 6 o 7 digitos y seguidamente de cuantos ceros lleva antes o después.

Por ejemplo, si pones 8900000000001 en un float solamente va a guardar 8.9e12 puesto que lleva 89 y varios ceros más (creo que once o algo así), el último 1 se pierde porque no se pueden guardar más de 6 o 7 dígitos importantes, eso es para ahorrar espacio dentro de la computadora y por eso se dice que los float y doubles pierden precisión.

Saludos,

ps:

El verdadero rango de los float depende del compilador que estés usando. En los cálculos de la cantidad de ceros me pude haber equivocado en algunos lugares.

Última edición por HackmanC; 15/05/2011 a las 18:39 Razón: edit