Ver Mensaje Individual
  #9 (permalink)  
Antiguo 08/02/2010, 21:26
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: Funcion contadora digitos decimales

Hola,

Cita:
Iniciado por genuine_carlosV2 Ver Mensaje
... Aunque esto te puede traer un problema ya que, al menos en mi caso, '%f' sólo muestra los 5 primeros decimales del número ...
Muestra solamente los 5 primeros dígitos porque el tipo de datos float tiene una precisión de 7 dígitos. Es decir, cualquier número con mayor cantidad de dígitos no se va a representar correctamente aún cuando hayas usado %.20f.

Por ejemplo, si ingresas el número 123.456, el tipo de datos float lo va a almacenar como un número exponencial, 1.23456 e +2. Y si le pides mayor precisión se la va a inventar. Si usas sprintf '%f' para mostrar ese número 'posiblemente' podría mostrar algo parecido a esto: 123.4560001, por lo que el cálculo sería inexacto (7 decimales y no 3 como se ingresó originalmente, aunque no sé si sea importante realmente).

Con el tipo de datos double obtienes una precisión de 15 digitos, (como estaba originalmente), pero aún así con números muy grandes no va a funcionar. En este caso, para mayor precisión, es mejor usar char como indica mhax.

Saludos,