Posted 20 October 2011 - 03:57 PM
Esa operacion da 10.095, esta a medio camino exacto entre 10.10 y 10.09
Si le mandas redondear primero a dos decimales, la hara a 10.10 por como redondea delphi, la regla del par (entre elegir uno que acaba en par y otro en impar, siempre gana el par, 10.10), esta es la forma correcta matematicamente para este redondeo por varias razones, que no vienen al caso.
Asi que si tu codigo es minimamente diferente, o si las variables no son del tipo exacto en los dos casos, la mas peueña diferencia podria deshacer el empate.
Como lo correcto es 10.10, que segun que format uses te eliminara o no el cero final, yo probaria Format('%3.2f',[d*e]), el que calcula mal es el de 10.09, ese deberias repasarlo, seguramente el formateo haya consistide en "cortar" el resultado 10.095 quitandole el ultimo 5 -truncar- en lugar de redondear y luego formatear, pero sin ver exactamente los dos trzos de codigo es dificil de saber.
Podria ser que en un sitio uses float y en otro double, o que la funcion de formateo no fuese identica, cualquier detalle podria ser.