Es mi caso amigo son sistemas de comercio exterior. De Razadi no sé, pero asumo que tiene un problema similar.
Saludos
Ummm. Podría hacer alguna prueba con Zeos + Firebird a ver que tipo de Field me genera por defecto si hago un tipo DECIMAL(n,6). En lo primero que pienso es que me generaría un TFloatField, pero no estoy completamente seguro.
La cosa es que si genera cualquier tipo de coma flotante que no sea de punto fijo se estará tentando a la posibilidad de que se pierda precisión en el último digito y te tire todo al cuete cuando veas que no te cierran las cajas por esa eterna lucha del centavo faltante.
Y si, el tipo Currency es lo mejor cuando se habla de cálculos de aplicaciones punto de venta y contabilidad
Saludos
Y si. Para eso fue pensado y diseñado.
Ahora otra forma de encarar la cosa es como ya una vez sugerí en el foro: emplear aritmética entera y simular lo que ya hace Currency. En lugar de pretender guardar números con los decimales corremos la coma y guardamos enteros. En lugar de 1234,5678 guardamos 1234578. Y en lugar de sumar 9876,1234 + 4321,6789 sumamos 98761234 + 43216789.
Al momento de mostrar (y nunca antes, y por sobre todo en operaciones intermedias) aprovechamos a presentarlo formateado a 2 o 4 decimales.
Esta misma técnica es válida para cualquier cantidad de decimales. Es lo lindo de la matemática entera. No perdemos ningún centavo, ni montos inferiores. Ahora eso si, todo tiene límite: el máximo número que puede meterse en un entero de 32bits o en uno de 64bits (aunque vaya a a encontrar al loco que tenga semejante fortuna) y debe cuidarse del tema si de admitiremos o no números negativos (es un bit menos con que podríamos contar... ojo no desprecien)
En algún lado había leído sobre algo llamado Principios Aceptados de Contabilidad o algo por el estilo y había ciertas "normas" que debían seguirse para hacer un buen sistema. Una de esas cosas mencionaba la posibilidad de valerse de aritmética entera y evitar tipos de coma flotante. He intentado encontrar ese documento de nuevo en los últimos meses sin resultado ya que me interesa en sobre manera aprender bien eso.
Saludos,