[fpc-devel] Freepascal 2.2.4rc1 released

Graeme Geldenhuys graemeg.lists at gmail.com
Wed Jan 28 11:07:52 CET 2009


I think I found a possible issue with 2.2.4.
I can not recall experiencing this issue under 2.2.3 (from mid December 2008).

I have data (tax rates) stored in a Firebird 2.1 database. The field
storing the rate is defined as Numeric(3,3).  I use SqlDB (via tiOPF)
to retrieve the data. That specific column is retrieved as follows:

  lData.Rate        := Query.FieldAsFloat['TAXRATE'];


lData.Rate  is declared as a Single type.

When I display the taxrate under Linux using the following method,
everything works as expected.

function DisplayPercentage(const AValue: Single): string;
begin
  writeln('AValue = ', AValue);
  Result := Format('%.2f', [AValue]);
  writeln('Formatted Avalue = ', Result);
  writeln('---');
end;

Output under Linux:
===============
AValue =  0.000001192E+00
Formatted Avalue = 0.00
---
AValue =  1.400000012E+01
Formatted Avalue = 14.00
---


When I display it under Windows (2000 or XP) I get a vastly different answer.

Output under Windows 2000 & XP
====================
AValue =  4.249977051E+03

Formatted AValue = 4249.98

----

AValue =  4.249440918E+03

Formatted AValue = 4249.44

----


As you can see the values are very different!!  I have no idea why.

I'm using FPC checked out from:
   http://svn.freepascal.org/svn/fpc/branches/fixes_2_2
   Revision: 12619

Both Linux and Windows systems are using the exact same revision of
FPC.  I'll try and put together a small test project and see if I can
pinpoint the exact location of the issue.


Regards,
  - Graeme -


_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/



More information about the fpc-devel mailing list