Ver Mensaje Individual
  #11  
Antiguo 22-08-2006
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Reputación: 22
Mick Va por buen camino
Cita:
Empezado por avmm2004
Ya lo hice y el resultado es identico. Falla. Gracias.
Yo he pensado que si intervendrá para algo el nuevo gestor de memoria y calculos que trae el delphi 2006, de Pierr la riche o algo asi creo que se llama.
En alguna parte leí, que se debe a el la aceleración en la ejecución del ide de delphi 2006 y en los cálculos en los programas ejecutables resultantes.
No se.
Los calculos no son identicos, en el primer caso se restan don valores y despues se realiza una suma.

En el segundo caso se sumas dos valores, y despues se hace una resta.

De modo que en el segundo caso algun o algunos de los valores intermedios de la primera suma no son representables de forma exacta en binario de ahi la diferencia de redondeo.

Tienes que entender que no todos los numeros decimales tienen representacion en binario de modo que en esos casos se guardar el valor binario mas aproximado.

Por ejemplo el valor decimal 69,82 no tiene representacion exacta en formato binaro de modo que si despues de asignar ese valor a una variable de tipo float mandas imprimir esa misma variable, veras que el valor es ligeramente diferente !!!

Aqui tienes un tutorial que explica con ejemplos los errores de redondeo en punto flotante, si te fijas es un tutorial de microsoft relativo a Visual Basic, no de delphi, los errores de redondeo son inherentes a la forma que tienen las computadoras de guardar los datos en punto flotante y no tienen que ver con ningun lenguaje en particular:

http://support.microsoft.com/default...b%3Bes%3B42980

PD: Con el avance continuo de la tecnologia de programacion a lenguajes de mas y mas alto nivel, me parece que se esta olvidando enseñar a la gente las bases de funcionamiento de los ordenadores, cualquier aspirante a desarrollar software deberia aprender antes que nada estas bases, no puede ser que a un programador le coja por sorpresa temas tan basicos como este.
Espero que esta reflexion no la tome nadie a mal
Responder Con Cita