fpc/tests/webtbs/tw40550.pp

46 lines
1.3 KiB
ObjectPascal

program LLVMCurrency;
uses
Math;
var
Ccy1,
Ccy2 : Currency;
Dbl : Double;
begin
Dbl := 1.50125;
Ccy1 := 1000000;
Dbl := Dbl * Ccy1;
WriteLn('(Double) Dbl * Ccy1 = ', Dbl:6:0, ' expected 1_501_250 SameValue: ', SameValue(Dbl, Double(1501250)));
if not SameValue(Dbl, Double(1501250)) then
halt(1);
Dbl := 1.50125;
Ccy1 := 1;
Dbl := Dbl * Ccy1;
WriteLn('(Double) Dbl * Ccy1 = ', Dbl:6:6, ' expected 1.50125 SameValue: ', SameValue(Dbl, 1.50125));
if not SameValue(Dbl, 1.50125) then
halt(2);
Dbl := 1.50125;
Ccy1 := 1000000;
Ccy2 := Dbl * Ccy1;
WriteLn('(Currency) Dbl * Ccy1 = ', Ccy2:6:0, ' expected 1_501_250 SameValue: ', SameValue(Ccy2, Currency(1501250)));
if not SameValue(Ccy2, Currency(1501250)) then
halt(3);
Dbl := 1.50125;
Ccy1 := 1000000;
Dbl := (Dbl * Int64(Ccy1)) / 10000;
WriteLn('(Double) Dbl * Int64(Ccy1)) / 10000 = ', Dbl:6:0, ' expected 1_501_250 SameValue: ', SameValue(Dbl, Double(1501250)));
if not SameValue(Dbl, Double(1501250)) then
halt(4);
Dbl := 1501250;
Ccy1 := 1000000;
Dbl := Dbl / Ccy1;
WriteLn('Dbl / Ccy1 = ', Dbl:6:6, ' expected 1.50125 SameValue: ', SameValue(Dbl, Double(1.50125)));
if not SameValue(Dbl, Double(1.50125)) then
halt(5);
end.