Notasbit

Las mejores noticias de tecnología en un sólo lugar

Publicado por: Microsiervos

Publicado en: 03/12/2019 03:09

Escrito por: [email protected] (Alvy)

0.30000000000000004.com

Erik Wiffin resume perfectamente en esta página web con el curioso nombre de 0.30000000000000004.com uno de los problemas de la representación matemática de los números en coma flotante que utilizan los ordenadores, o más bien los lenguajes que se usan los ordenadores.

Todos números se almacenan con una cantidad limitada de dígitos. A veces, al cambiar de una base a otra (por ejemplo de base 10 a base 2, binario), se pierde parte de esa información y al operar con ella se amplifica el problema creando un poco de confusión. En el ejemplo que produce el curioso nombre de la página, al convertir 0,1 y 0,2 a binario la secuencia de dígitos binarios es repetitiva (aunque ambos son «números redondos» en base 10). El resultado es que en muchos lenguajes al calcular luego 0,1 + 0,2 con esos dígitos y volver a convertirlo a decimal el resultado no es exactamente 0,3 como cabría esperar.

La página muestra lo que aparece como resultado al usar diversos lenguajes: Ada, C, C++, C#, Common Lisp, Erlang, Fortran, Go, Roku, Java, MathLab, Mathematica, PHP, Perl, Python, R, TCL, Visual Basic y otros más esotéricos. En cada uno de ellos se calcula la suma (0,1+0,2) y se muestra el resultado (0,3; 0,30000000000000004; 0,300000; 0.300000012; 0.2999999999999999888977697537… hay de todo). A veces se indican comentarios y trucos sobre cómo obtener los dígitos, formateando el resultado o definiendo la precisión en la configuración.

Hay más detalles sobre todo esto en el IEEE 754-2008 que es el estándar para …

Top noticias del 3 de Diciembre de 2019