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, 14:42h
(#964419)
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
Sí, porque 77.1 expresado en base 2 es un número decimal periódico con infinitos decimales (1001101.0001100110011 etc), y por tanto no puede ser expresado de forma exacta por muchos bits de mantisa que tenga la representación en coma flotante o coma fija.
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)( http://barrapunto.com/ | Última bitácora: Martes, 08 Julio de 2014, 11:19h )
Nos leemos
--------
Cada user en su home y el root en la de todos
Re:[OT] alguien sabe...
(Puntos:1, Informativo)Sí, porque 77.1 expresado en base 2 es un número decimal periódico con infinitos decimales (1001101.0001100110011 etc), y por tanto no puede ser expresado de forma exacta por muchos bits de mantisa que tenga la representación en coma flotante o coma fija.