Foros del Web » Programación para mayores de 30 ;) » C/C++ »

double

Estas en el tema de double en el foro de C/C++ en Foros del Web. double hasta que valor llega? 50,6 100,8 500,34 ???...
  #1 (permalink)  
Antiguo 21/09/2010, 16:31
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 14 años, 4 meses
Puntos: 0
double

double hasta que valor llega? 50,6 100,8 500,34 ???
  #2 (permalink)  
Antiguo 21/09/2010, 20:34
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: double

El doble puede llegar muy pero muy lejo... Pero cuando mas lejo va, mas pierde precision. Esa es la ventaja y desventaja.

EL tipo double es de 64bits. Y tiene este alcance:

2.23e-308 <= |X| <= 1.79e308 Precisión científica (15-dígitos)


piensa que "e308" representa un 1 con 308 ceros atras, osea que imagina que flor de numero tiene...La lastima que solo tiene presicion de 15 digitos. Osea que solo pudes saber los primeros 15 digitos mas significativos del numero. Todo lo demas seran ceros que abultan. jeje
  #3 (permalink)  
Antiguo 23/09/2010, 07:29
Avatar de r0d
r0d
 
Fecha de Ingreso: noviembre-2007
Mensajes: 86
Antigüedad: 17 años, 1 mes
Puntos: 3
Respuesta: double

Hola,

un error bastante comùn a proposito de los tipos en C y en C++ es que nigùn estandar especifica explicitamente el tamaño (en bit) de cada tipo nativo. La razón es una cuestion de que el C y el C++ puedan ser utilizados en varios sistemas, independientamente del bus (por ejemplo, si trabajamos en un symbian 4 bit - en un telefono movil por ejemplo - no tiene sentido decir que un double es de 64 bits). Es importante entender que este tipo de cosas muy precisas están de la responsabilidad de la implementación (del compilador o de la librearia estandar), pero no del estandar mismo. Lo que es imporante aquí es la distinction entre el estandar y su implementación.

Por ejemplo, en el estandar C++03, la unica referencia al tamaño de los tipos flotantes es el capitulo 3-9-1-8:
Cita:
There are three floating point types: float, double, and long double. The type double provides at least as much precision as float, and the type long double provides at least as much precision as double. The set of values of the type float is a subset of the set of values of the type double; the set
of values of the type double is a subset of the set of values of the type long double. The value representation of floating point types is implementation defined.
Integral and floating types are collectively called arithmetic types. Specializations of the standard template numeric_limits (18.2) shall specify the maximum and minimum values of each arithmetic type for an implementation.
He puesto en negrita la parte que me parece resumir todo: "la representación de los tipos flotantes está definida por la implementacón" (y no por el estandar).

Es por está razón que es recomendable utilizar las variables globales de la cabecera <numeric_limits>, de manera que nuestro codigo funcione en cualquier implementación (libreria estandar y compilador).

Espero que me explico.
__________________
Alicia: Sólo quiero saber que camino debo tomar.
Gato risón: Pues... depende mucho de donde quieras ir.

Mi página web

Etiquetas: double
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:16.