Precisión de los decimales

Base de conocimiento de la plataforma de desarrollo Velneo

Moderador: vCoaches

Responder
vBdC
vGuru
vGuru
Mensajes: 2
Registrado: 11 Oct 2005, 14:22

Precisión de los decimales

Mensaje por vBdC » 27 Nov 2003, 01:00

Precisión de los decimales

Categorías: Hardware, Campo, Sistema operativo

Palabras clave: Decimales, Error

Enunciado:
Debido a un problema con los procesadores numéricos al usar la coma flotante, no se puede garantizar más que 5 decimales, ó 6 si la parte entera no supera 8.000.000.000.

Desarrollo:
El uso de la coma flotante heredada de los procesadores de arquitectura x86 provoca redondeos en los decimales que se usan. No se garantizan más que los primeros 5 decimales aunque, si el número de dígitos de la parte entera de los números usados no es mayor de 8.000.000.000, los decimales exactos son 6. No están garantizados más decimales.

Ver: Artículo de la base de conocimiento MSDN
Inglés - Español (traducción automática)
"Los valores de decimales en coma flotante en ocasiones no tienen una representación binaria exacta. Esto es un efecto colateral de cómo la CPU representa los datos en coma flotante. Por esta razón, Vd. puede experimentar cierta pérdida de precisión, y algunas operaciones con coma flotante pueden producir resultados inesperados.
Este comportamiento es el resultado de uno de los siguientes:
- La representación binaria del número decimal puede no ser exacta.
- Se produce un desfase de tipo entre los números utilizados."

Revista Solo Programadores Nº 105, Simulación de colisiones, pág. 54):
"Por otra parte, la frustrante aritmética flotante impide que los cálculos se realicen con precisión absoluta, dando lugar a efectos inesperados. Los números decimales son truncados por la máquina, por lo que en sucesivas operaciones sobre todo de multiplicación se acumulan errores numéricos que pueden dar al traste con la simulación."

En el caso en que necesitemos una precisión superior a los 6 decimales, podemos hacer lo siguiente:
Imaginemos que se utiliza como valor de conversión el siguiente número de 6 decimales: 0,123456
Lo que se puede hacer es introducir como dato el número 12,3456 y en la fórmula de la conversión multiplicar por este número y dividir el resultado entre 100.

Artículos relacionados
No realiza los cálculos con fechas anteriores al 1 de Enero de 1970 o posteriores al 20 de Enero de 2038
Recomendaciones para la importación de datos desde Access
Última edición por vBdC el 27 Nov 2003, 01:00, editado 1 vez en total.

Responder