Estoy convencido que esto que voy a preguntar debe estar en algún lugar del foro, pero no lo he podido encontrar.
Resulta que tengo una aplicación típica de punto de venta, en la que muestro los resultados de la búsqueda de artículos en un DBGrid y luego desde este elijo que artículo se agregará a la venta (armada en un StringGrid).
Lo que va sucediendo es que desde el número original, al que se muestra en pantalla en la búsqueda en formato moneda, al que posteriormente se agrega al StringGrid se va perdiendo precisión con los redondeos.
Los problemas son con los artículos cuyo precio es muy pequeño y cuando se venden mucho de ellos. Por ejemplo: en 200 artículos de $0.13 hay una diferencia de $0.8 (80 centavos).
Si bien no es mucho, me gustaría saber si es factible acomodar eso y quizás lo más importante ¿tiene sentido hacerlo?.
La consulta SQL es la siguiente:
Código Delphi
[-]Modulo.Consulta.Active := FALSE;
Modulo.Consulta.SQL.Clear;
Modulo.Consulta.SQL.Add('SELECT Cod_Producto as Código, Desc_Producto as Descripción,');
Modulo.Consulta.SQL.Add('FORMAT((Precio+(Precio*(Porcentaje_Ganancia/100))+(Precio+(Precio*(Porcentaje_Ganancia/100)))*0.21), "Currency") as Precio,');
Modulo.Consulta.SQL.Add('Cant_Existente as Stock FROM Productos');
Modulo.Consulta.SQL.Add(Filtro);
Modulo.Consulta.Active := TRUE;
Saludos y gracias de antemano!