[fpc-pascal] Extended, Currency and TDateTime memory layout

Felipe Monteiro de Carvalho felipemonteiro.carvalho at gmail.com
Sat Aug 7 23:39:08 CEST 2010

On Sat, Aug 7, 2010 at 10:44 PM, Zaher Dirkey <parmaja at gmail.com> wrote:
> A Currency is a Int64 not float, if you assign currency to float variable
> (double/extended) and return back to currency variable, you will not get the
> same value.

Interresting enough, the exact same value is returned. From my
research on this subject a floating point is something like:

Sign bit || exponent bits || decimal places

Num = sign * (2^(exponent - offset) + decimal places)

And the server only sends numbers like: 0,25; 0,5; 1; 2; 4; etc

All those numbers can be fully represented using the exponent, so the
double conversion maintains them exactly the same.

Felipe Monteiro de Carvalho

More information about the fpc-pascal mailing list