[fpc-devel] MinCurrency

LacaK lacak at zoznam.sk
Wed Nov 18 15:00:06 CET 2015


>
>> There is also related bug report: 
>> http://bugs.freepascal.org/view.php?id=28737
>>
>> And look at part of code in rtl/objpas/sysutils/sysstrh.inc:
>>
>> 41     {$if defined(FPC_HAS_TYPE_EXTENDED) or 
>> defined(FPC_HAS_TYPE_FLOAT128)}
>> 42       MinCurrency: Currency = -922337203685477.5807;
>> 43       MaxCurrency: Currency =  922337203685477.5807;
>> 44     {$else}
>> 45       MinCurrency: Currency = -922337203685477.0000;
>> 46       MaxCurrency: Currency =  922337203685477.0000;
>> 47     {$endif}
>>
>> Why is for case not defined(FPC_HAS_TYPE_EXTENDED), MinCurrency 
>> defined as is ?
>
> I think that on those targets, some currency handling is still (or 
> was?) implemented via the double type (instead of fixed point using 
> int64),
Is there way how to check current status?
If there is still need for conditional definition ?
(if I look at occurences of MinCurrency in RTL source code, I think, 
that it can be adjusted ... in other words what is risk of changing 
MinCurrency and MaxCurrency constants ... IMO is better if they will 
have same value on all platforms, which supports Int64)

Because for example on Win64/x86_64 target, there is not defined 
FPC_HAS_TYPE_EXTENDED, so I get "truncated values"
  " -922337203685477.0000"
Oposed to Win32/i386, where I get
  "-922337203685477.5807"

And secondly why is MinCurrency "-922337203685477.5807" and not 
"-922337203685477.5808"
(see mentioned bug report)

-Laco.



More information about the fpc-devel mailing list