On jue, ago 03, 2000 at 01:37:07 +0200, Hue-Bond wrote: > Usando while ($num <= 1.0) funciona bien, por lo que se me > ocurre que esta puede ser una solución barata para el problema, > usar siempre <= e => en lugar de < y >. Los "x = N", "x < N" o "x > N" suelen funcionar mal en este y cualquier lenguaje de programación para números en coma flotante, Perl como dice Jaime no es muy fino para coma flotante pero C si y tiene estos fallos, fallos producidos por la forma de realizar esta operación en los registros y en el almazenaje en memoria del computador de los números. La solución a estas cosas suele ser la que tu comentas: ">=" o "<=". En caso de comparaciones estrictas, es mejor realizarlas del modo: "x-N < P", donde P es la precisión requerida, elegida según el lenguaje usado ateniéndonos a lo qué debemos y no debemos hacer (tipos, rangos y otros "animales"). En la mayoría de los casos no nos preocuparán estas cosas pero cuando se realizan cálculos en coma flotante en cascada el resultado puede ser catastrófico, cuidado ahí. Saludos. -- Javier Viñuales Gutiérrez <vigu@ctv.es> Webs: http://www.ctv.es/USERS/vigu Personal http://www.ctv.es/USERS/vigu/linux/ ViguLinux PGP public key: http://www.ctv.es/USERS/vigu/vigu.pubkey
Attachment:
pgpVW_OPMxJeo.pgp
Description: PGP signature