Tested with FPC 2.6.4 . LacaK are you sure you compile with the same version.
To me everything looks fine. program test_Currency; {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} SysUtils; var s: string; c: currency; e: extended; d: double; i64: int64; begin i64:=1 shl 63; c:=PCurrency(@i64)^; // Minimum representable currency d:=-922337203685479999; e:=c; i64:=PInt64(@c)^; writeln('CW=', Get8087cw()); writeln('currency=', c); c:=-92233720368547.9999; // LacaK currency writeln('currency=', c); writeln('extended=', e); writeln('string=', currtostr(c)); writeln('int64=', i64); writeln('double=', d); readln; end. Gives me : CW=4978 currency=-9.223372036854775808E+14 -> Ok to me currency=-9.223372036854799990E+13 -> Ok to me extended=-9.2233720368547758E+0014 string=-92233720368547.9999 -> Ok to me int64=-9223372036854775808 double=-9.22337203685480E+017 BrunoK _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal