Hola amigos.
He tenido un problema (no se si ocurrira solo con D7 que es con el que trabajo) ya que cuando trabajo con numeros flotantes tiende a agregarme decimales. No le habia dado importancia hasta q mi cliente protestó porque cuando el hace una factura, la guarda y la recupera las cantidades no coinciden entre la factura que ha impreso y la que esta guardada.
Ejemplifico:
Ahorita estoy debuggeando un programa en el cual yo escribo por ejemplo 8.52 en un DecimalSpin. Al acceder a su propiedad "value" para obtener el numero me agrega digitos
Código Delphi
[-]
cantidad := spin_cant.value;
precio := spin_precio.value;
total := cantidad * precio;
Como pueden notar el error es de solo 0.01 pero en una factura con 10 o 20 productos hacen variaciones de 10 a 20 centavos.
Pensé que el problema podría ser el Control, sin embargo me repite el mismo problema con cualquier otro control para decimales.
De hecho hice otro experimento
Código Delphi
[-]
var
s1,s2 : string;
tmp : single;
begin
precio := spin_precio.value;
s1 := FormatFloat('###########0.00;-###########0.00;0', precio);
s2 := FormatFloat('###########0.00;-###########0.00;0', cantidad);
tmp := StrToFloat(s1) * StrToFloat(s2);
end;
No entiendo el motivo de este comportamiento con los decimales. Asi que les pido tengan la gentileza de darme un poco de ayuda para corregir este problema.
Muchas gracias de antemano.