Hola a todos.
Quería saber cuántos decimales se pueden visualizar como máximo en C con un tipo de dato float, y con un double.
Muchas gracias.
| |||
Respuesta: Número de decimales según tipo de dato Con un tipo float tienes 7-8 cifras significativas, y con un tipo double tienes 15-16 cifras significativas. A partir de aquí, si le pides que imprima más cifras, te imprimirá ceros. |
| |||
Respuesta: Número de decimales según tipo de dato Exacto!! A eso me refería yo. He observado eso y necesito tener muchos más de 15 o 16 decimales significativos. ¿¿Existe alguna forma de hacerlo sin que salgan ceros?? |
| |||
Respuesta: Número de decimales según tipo de dato Para más dígitos tendríamos: long double es el tipo con el que trabaja internamente la unidad de coma flotante. Son 80 bits (10 bytes), y te daría una precisión de unas 20 cifras significativas. Comprueba que dispones de el realmente, hay compiladores (creo que Visual C es uno de ellos) que te toma el tipo long double como sinónimo de double. Ojo, si compruebas el tamaño podría indicarte que ocupa 12 bytes (96 bits) ó 16 bytes (128 bits) por razones de direccionamiento de memoria, pero solamente te estaría usando los 80 bits. El compilador GNU C, a partir de la versión 4.3 (creo) tiene un tipo (no estandar) __float128 (comienza con dos guiones bajos), de 128 bits (16 bytes). Con este tipo tendrías unas 34 cifras significativas. Algunos compiladores disponen de un tipo qfloat de 384 bits (48 bytes) (no, no es un error). Con este tipo dispondrías de unas 100 cifras significativas. Por ejemplo, el compilador LCC-Win32. Es un compilador C (no C++, aunque tiene algunas características de C++), su IDE deja mucho que desear, pero es rápido y ocupa poca memoria. Si utilizas alguno de estos tipos, ten en cuenta que podrían necesitar especificadores de formato especiales, o versiones especiales de las funciones scanf/printf/cin/cout (y familia) para entrada/salida de datos, consulta los manuales correspondientes. También puedes utilizar alguna librería de precisión arbitraria, basta con rezar a San Google. |
Etiquetas: |