Bueno, recuerdo muy bien tu hilo anterior ya que yo estaba unido a tu causa y estaa totalmente de acuerdo contigo, la verdad es que es algo demaciado molesto y complicado de llevar, recuerdo que en ese hilo llegamos a la conclusión de que quizá cambiando la BD a Dialecto 3 mejoraria el asunto, a partir de ese entonces comenzamos un proyecto en mi empresa para cambiar de Dialecto nuestra base de datos y realizar las pruebas necesarias con bases de datos con datos veridicos, aún estamos realizando estas pruebas pero debo decirte que hasta ahora todas han sido satisfactorias, ya no tenemos problemas al sumar todos esos valores debido a que al parecer con Dialecto3 la cosa es diferente, poniendo tu caso como ejemplo:
Antes en Dialecto1, veiamos lo mismo que tu al digitar un valor, si digitabamos:
1201,35 él almacenaba 1201,359999999999999
Ahora con Dialecto3, tambien se "inventa" esos números de mas pero de manera diferente, si digitamos:
1201,30 él guarda 1201,34999999999
Por lo que al redondear a dos decimales en nuestros reportes tendremos el valor correcto
.
Para probar eso hicimos un Sum de toda nuestra tabla de contabilidad, luego de haber "redigitado" (entre comillas porque hice un software que hacia eso automaticamente, simulando que alguien los digitaba) de nuevo todos los documentos y el saldo nos dio 0, cuando antes nos mostraba 0.01.
Nota: Para cambiar de Dialecto1 a Dialecto3 tuve extraer el Metadata y con el mismo IbExpert ejecutarlo en una BD creada con el nuevo Dialecto, el Script mostró muchos errores debido a la incompatibilidad entre los dos dialectos y a medida que los iba corrigiendo, lo ejecutaba de nuevo hasta corregir todos y cada uno de ellos, tanto en los Stored Procedures, como en la aplicación.