Ver Mensaje Individual
  #19  
Antiguo 14-09-2010
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Cita:
Empezado por rrf Ver Mensaje
Hola de nuevo.

Oye Delphius, gracias por tu explicación. No he hecho pruebas, pero parece que tienes razón y además, las demás opiniones te apoyan.
De nada. Pues yo si probé la función que pusiste. Al principio sospeché que era yo el que estaba equivocado y que al final podría resultar pero cuando empecé a mirar más adentro, y probar con los números extremos noté como se hacía pedazos el algoritmo.
Si aplica un redondeo razonable para ciertos números es una casualidad, pero en lo general... lo siento pero no eso no vale.

Si me apoyan es que les he dado una coima jajaja. No es que me apoyen ciegamente, ellos seguramente saben mucho más de lo que puedo saber yo... además ellos ya venían probando y proponiendo.
Nomás es que yo me animé a darle un pequeño giro al asunto.

Cita:
Empezado por rrf Ver Mensaje
Cambiando de tema, creo que tienes habilidades para dedicarte a la docencia (y va en serio).
No eres el primero en decírmelo... ¡hasta el sodero opina que debería ser docente/profesor!
Hechando a perder dicen que se aprende... el asunto es que si enseño estaré hechando a perder a algunos jóvenes y futuros profesionales.

Debo reconocer que todavía me lo pregunto si vale la pena y me encantaría... el asunto es si los aguanto (y ellos a mí, que es lo principal).

Cita:
Empezado por rrf Ver Mensaje
Ahora sí, amplío la información sobre esa función. He trabajado con el cálculo de % de una serie de valores. Redondeo a 2 decimales, pero es frecuente que la suma de los resultados finales sea un 100,01%, 100,02%, 99,99% ó 99,98%.

Lo que me parece un error "demasiado grande". Pero, por más que hice pruebas, no logré mejorar mucho los resultados.
Como dije en mi último post: la aritmética de punto flotante no es 100% exacta, más bien es aproximada. Tiene que ver no sólo el tipo de datos (y su precisión), sino también el modo de redondedo, los algoritmos, y en el modo de trabajar internamente.

El formato IEEE 754 impone cierto formato y los números deben adaptarse a éste. Por empezar hay un límite de dígitos significativos a almacenar en los tipo Simple, Double y Extended. Esto hace que los números no pueden ser más precisos de esa cantidad de dígitos. En segundo lugar no todos los números son exactamente representables en el formato por lo que la máquina en realidad almacena un número aproximado (como por ejemplo, 0.1). Y peor aún en los números irracionales... como Pi, la constante de euler... donde los efectos son más notables: no sólo se ven limitados por la precisión sino que no son representables. Otros números que tienen problemas son los números periódicos... 1/3 es 0,333333....

Y por último, el estándar IEEE 754 establece que las operaciones sean redondeadas. En síntesis, son muchas cosas que afectan y por ello nunca se conseguirá una total exactitud. Es por ello que cuando se trata de operaciones con números flotantes se estila trabajar con márgenes de error.

No quisiera extenderme demasiado, busca entre los foros "Lo que todo informático debe saber sobre aritmética flotante". He hablado antes al respecto. O mejor aún te hago llegar el enlace a material de consulta.

Creo que con ello tienes para darte una mejor idea del tema.

Cita:
Empezado por rrf Ver Mensaje
Finalmente me quedó la idea de que posiblemente si hacía un redondeo como el que propuse en mi comentario anterior, la situación mejoraría.
Pues, ya vez que no

Cita:
Empezado por rrf Ver Mensaje
No llegué a hacer la función hasta que leí este hilo en el foro. "Sobre la marcha", hice las pruebas y añadí el comentario. En la práctica, no lo probé mas que con un par de ejemplos.

Sin embargo, después de leer tu comentario Delphius y el de Casimiro y Ecfisa, creo ver que seguramente es un planteamiento equivocado.

Gracias por las aclaraciones y salu2.
Gracias nuevamente.
No tienes que agradecerme. Aquí se aprende todos los días, y te lo digo yo que me falta mucho por aprender . No te creas que se mucho de mucho, nomás es que hago un esfuerzo para aparentar que se mucho

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita