Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • por pobrecito hablador el Miércoles, 26 Septiembre de 2007, 10:29h (#964334)
    ¿por qué en javascript al multiplicar un n con un decimal por 10^n (n>1) resulta que se inventa decimales?

    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.
  • por sammael (16347) el Miércoles, 26 Septiembre de 2007, 10:55h (#964346)
    ( http://barrapunto.com/ | Última bitácora: Lunes, 24 Febrero de 2014, 10:03h )
    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.
    [ Padre ]
  • Re:[OT] alguien sabe...

    (Puntos:1, Informativo)
    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í.
    [ Padre ]