123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- { test by Graeme Geldenhuys }
- {$mode delphi}
- uses sysutils;
- procedure test;
- var
- Result: string;
- e: extended;
- r: double;
- begin
- e := 234.502;
- Result := FloatToStrF(e, ffGeneral, 15, 0);
- // Memo1.Lines.Add(Result); { prints 234.502 }
- writeln(result);
- if (result <> '234.502') then
- halt(1);
- r := 234.502;
- Result := FloatToStrF(r, ffGeneral, 15, 0);
- // Memo1.Lines.Add(Result); { prints 234.50200000000001 }
- writeln(result);
- if (result <> '234.502') then
- halt(1);
- r := 234.501;
- Result := FloatToStrF(r, ffGeneral, 15, 0);
- // Memo1.Lines.Add(Result); { prints 234.501 Why does this work? }
- writeln(result);
- if (result <> '234.501') then
- halt(1);
- r := 7.502;
- Result := FloatToStrF(r, ffGeneral, 15, 0);
- // Memo1.Lines.Add(Result); { prints 7.502 }
- writeln(result);
- if (result <> '7.502') then
- halt(1);
- r := 8.502;
- Result := FloatToStrF(r, ffGeneral, 15, 0);
- // Memo1.Lines.Add(Result); { prints 8.502000000000001 }
- writeln(result);
- if (result <> '8.502') then
- halt(1);
- end;
- begin
- test;
- end.
|