[fpc-pascal] SimpleRoundTo behaviour

Bart bartjunk64 at gmail.com
Tue Apr 8 23:59:37 CEST 2014


Hi,

Is this a bug in fpc?
(tested with 2.6.4)

program test;

{$ifdef fpc}{$mode objfpc}{$endif}
{$H+}

uses
  Classes, SysUtils, Math;

var
  S: Single;
  E: Extended;
  D: Double;

begin
  writeln('Single');
  S := SimpleRoundTo(12345,3);
  writeln(S);
  S := RoundTo(12345,3);
  writeln(S);
  writeln;

  writeln('Double');
  D := SimpleRoundTo(12345,3);
  writeln(D);
  D := RoundTo(12345,3);
  writeln(D);
  writeln;

  writeln('Extended');
  E := SimpleRoundTo(12345,3);
  writeln(E);
  E := RoundTo(12345,3);
  writeln(E);
  writeln;

  writeln('FPC''s pick');
  writeln(SimpleRoundTo(12345,3));
  writeln(RoundTo(12345,3))

end.


Output comiled with Delphi 7
Single
 1.20000000000000E+0004
 1.20000000000000E+0004

Double
 1.20000000000000E+0004
 1.20000000000000E+0004

Extended
 1.20000000000000E+0004
 1.20000000000000E+0004

Delphi's pick
 1.20000000000000E+0004
 1.20000000000000E+0004

(It seems D7 only returns Extended)

Output compiled with fpc 2.6.4
Single
 1.199999902E+04
 1.200000000E+04

Double
 1.19999990234375E+004
 1.20000000000000E+004

Extended
 1.1999999023437500E+0004
 1.2000000000000000E+0004

FPC's pick
 1.199999902E+04
 1.200000000E+04

Bart



More information about the fpc-pascal mailing list