//Run: Lazarus 1.6.0-32-bit in Win7-64-bit and Lazarus 1.6.0-amd64 in Debian-8.2-amd64
procedure TForm1.CurrencyEdit1Change(Sender: TObject);
var
a:Currency;
begin
a:=500;
CurrencyEdit3.Value:=CurrencyEdit1.Value*a-CurrencyEdit2.Value;
//example i get value
//1 * 500 -100 = 400 - (right value)
end;
But
//Run: problem only on Lazarus 1.6.0-64-bit in Win7-64-bit
procedure TForm1.CurrencyEdit1Change(Sender: TObject);
var
a:Currency;
begin
a:=500;
CurrencyEdit3.Value:=CurrencyEdit1.Value*a-CurrencyEdit2.Value;
//example i get value
//1 * 500 -100 = 4000000 - (wrong value)
end;