![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Este hilo tiene el misterio de un cuento de navidad, con sorpresa incluida, el que era, ahora no es, el que es, no es el que parecía que era, jejeje...
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal Última edición por Casimiro Noteví fecha: 20-12-2006 a las 21:25:27. |
|
#2
|
|||
|
|||
|
Solo quiero comentar que si el código ejemplo es similar al código real (según tú) a nadie beneficia haber mostrado el primero, es decir, no se ha resuelto tu problema y por otro lado pienso que le hiciste perder el tiempo a la gente que amablemente trato de colaborar.
Tu problema es específico en el código real y nunca se va a localizar el mismo error/problema/defecto (llamalo como quieras) en el código ejemplo. Hasta pronto Edito: Lo único congruente es el titulo del hilo (COSA DE LOCOS) ![]()
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
|
#3
|
|||
|
|||
|
No es posible que si se cumplen las condiciones no entre al if, ¿seguro que no en alguno de los bucles while no se cumple y sale?
|
|
#4
|
||||
|
||||
|
Cita:
Las comparaciones de tipos que tienen decimales es uno de los mayores problemas que hay en el mundo de la PC, al menos para mí ; es un problema inherente al diseño del procesador para almacenar y manejar las precisiones y no es específico a un lenguaje, vamos, no es de Delphi. Yo lo viví en carne propia al crear una aplicación para tratamiento de señales de sensores que deben ser procesados con precisiones de 9 posiciones decimales, o mejor dicho 0.00000001 unidades de error máximo en los cálculos, ncluyendo las maditas comparaciones de floats. También me quebré la cabeza y por 2 semanas investigando la comparación que fallaba a partir de los 6 decimales y en el Watch salían valores <> 0 (por eso nunca entraba al if) al restar el valor comparado contra el valor de la condición, que según yo y la lógica de este universo eran valores iguales; y buscando por Internet encontré la causa, que es la forma cómo el procesador almacena y reconstruye el valor original (que al final no siempre resulta el original); como no es entero, usa una serie de estratagemas para almacenar la parte decimal. La solución en mi caso fué limitar la precisión máxima de 9 decimales para todos los cálculos, truncando lo demás. Para esto se puede usar SimpleRoundTo de la unidad Math ó la combinación de RoundTo / SetRoundMode. Sería algo similar al hilo quedarme con Centésimas en un float. Saludos
__________________
eLcHiCoTeMiDo - Rompecorazones profesional Yo no soy presumido; ¿Pero de qué sirve mi humilde opinión contra la de los espejos? Salva a un nylon, usa prendas de piel de foca
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Están locos estos romanos | dec | Humor | 3 | 09-10-2006 11:49:32 |
| Los virus estan mas locos cada dia | el_barto | Noticias | 6 | 14-09-2005 17:54:18 |
| ...de locos... | Jure | Humor | 2 | 23-08-2004 12:43:20 |
| ¿Estamos locos o que? | kokoon | Humor | 3 | 28-05-2004 21:25:33 |
| Locos | obiwuan | Humor | 0 | 13-05-2003 19:05:19 |
|