vamos a ver si consigo explicarme: en esas multiplicaciones estas usando numeros con decimales, asi que se hacen con operaciones en coma flotante, resulta que 77.1 es uno de esos numeros que no se pueden representar exactamente en dicha notacion, asi que hay redondeos y demas que hacen que el resultado no sea totalmente exacto
norma para programadores: no useis coma flotante para calculos donde la exactitud es necesaria, por ejemplo, en calculos financieros, convertid todo a numeros enteros y usad solo operaciones asi (division entera, modulo...)
por cierto, como nota curiosa, el excel 2003 funciona perfectamente haciendo este calculo
--
Dale fuego a un hombre y estara caliente un dia, prendele fuego y estara caliente el resto de su vida.
por
pobrecito hablador
el Miércoles, 26 Septiembre de 2007, 16:44h
(#964457)
Si sabes inglés mírate éste artículo [wolfram.com]. En cuanto a lo de comparar números en coma flotante hay que crearse una función con un margen de error y esas cosas, seguro que hay muchos manuales por ahí.
[OT] alguien sabe...
(Puntos:0)javascript:alert(10*77.1 == 7710/10) -> cierto
javascript:alert(100*77.1 == 7710/100) -> falso
Lo raro es que me pasa tanto en firefox y explorer ambos para windows? (la calculadora lo hace bien)
Y calro, si haces algun cálculo con decimales en los formularios te puedes llevar una sorpresa.
No se tomen este OT como un HOYGAN, es curiosidad por si tiene alguna explicación "lógica" o es otro error de Windows.
Re:[OT] alguien sabe...
(Puntos:2)( http://barrapunto.com/ | Última bitácora: Lunes, 24 Febrero de 2014, 10:03h )
norma para programadores: no useis coma flotante para calculos donde la exactitud es necesaria, por ejemplo, en calculos financieros, convertid todo a numeros enteros y usad solo operaciones asi (division entera, modulo...)
por cierto, como nota curiosa, el excel 2003 funciona perfectamente haciendo este calculo
Dale fuego a un hombre y estara caliente un dia, prendele fuego y estara caliente el resto de su vida.
Re:[OT] alguien sabe...
(Puntos:1, Informativo)