¿Por qué falla la calculadora de Google?

| 3 comentarios | Sin trackbacks

Tengo una sospecha de la posible causa de la falla de la calculadora de Google, prueben este programa en C:

#include <stdio.h>
#include <math.h>

int main()
{
   char* a = "399999999999999";
   char* b = "399999999999998";


   float da = atof(a);
   float db = atof(b);

 

   printf("da = %f,  db = %f\n", da, db); // para ver como se almacenan los numeros

 
   printf("%s - %s = %f\n", a, b, da-db);
  

   a = "500000000000002";
   b = "500000000000001";
   da = atof(a);
   db = atof(b);

   printf("da = %f,  db = %f\n", da, db);

   printf("%s - %s = %f\n", a, b, da-db);
}

 

Al ejecutar este programa obtendrán como salida lo siguiente:

   399999999999999 - 399999999999998 = 0.000000
   500000000000002 - 500000000000001 = 0.000000

parece que en Google están usando precisión simple, es decir, números en punto flotante en 32 bits.
prueben cambiando float por double en el programa anterior, y problema resuelto.

Es un error feo, aunque no es un tremendo misterio Mr. Chips....

Sin trackbacks

URL de TrackBack: http://www.lnds.net/cgi-bin/mt-tb.cgi/2146

3 comentarios

aunque es una gran prueba ediaz me parece que fue con sa#a hacia el mr papas fritas, te viste como husain bolt... demsotrar ser el mejor pero humillando al rival, humilde opinion.

quedo clarito con la explicacion wn... XD

@fufrufu Es cierto, que fuí pesado, con Mr Chips, pero este problema es viejo, y cada cierto tiempo aparece. Ya ha pasado con excel, con la calculadora de windows, etc.

En todo caso mi comentario era contra un tema que es bastante aburrido a estas alturas.

No comenté en contra de Mr Chips, o su capacidad intelectual, aunque como está escrito mi comentario puede ser mal interpretado, así que aprovecho de aclarar que no fue esa mi intención.

Mr Chips se la tomó personal y lanzó la pachotada de decir que "él y otros editores tecnológicos eran unos idiotas entonces".

La verdad es que escribí la demostración porque después de leer el artículo de cnet.news me quedó clarito cual era la causa más probable, y no resultó ser un misterio insoluble, ni es necesario ser un genio para darse cuenta que es lo que pasa, al contrario de lo que afirma Mr. Chips.


Escribir un comentario

Sobre esta entrada

Esta página contiene una sola entrada realizada por Eduardo Diaz y publicada el 25 de Agosto 2008 6:58 PM.

La Ley de Miyagi es la entrada anterior en este blog.

Sobre TIC es la entrada siguiente en este blog.

Encontrará los contenidos recientes en la página principal. Consulte los archivos para ver todos los contenidos.

BloGalaxia website stats