mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 15:49:26 +02:00
* currency support
* dropped fixed16/32 support
This commit is contained in:
parent
dd8f11e8e1
commit
bbf9d2f9c6
@ -14,8 +14,11 @@
|
||||
**********************************************************************}
|
||||
|
||||
type
|
||||
{ See symdefh.inc tfloattyp }
|
||||
treal_type = (rt_s32real,rt_s64real,rt_s80real,rt_c64bit,rt_f16bit,rt_f32bit);
|
||||
{ See symconst.pas tfloattype }
|
||||
treal_type = (
|
||||
rt_s32real,rt_s64real,rt_s80real,
|
||||
rt_c64bit,rt_currency,rt_s128real
|
||||
);
|
||||
{ corresponding to single double extended fixed comp for i386 }
|
||||
|
||||
Procedure str_real (len,f : longint; d : ValReal; real_type :treal_type; var s : string);
|
||||
@ -168,7 +171,7 @@ const
|
||||
(stackPtr < maxDigits+1)) then
|
||||
begin
|
||||
{ we didn't use all available digits of the whole part -> make sure }
|
||||
{ the fractional part is not used for rounding later }
|
||||
{ the fractional part is not used for rounding later }
|
||||
currprec := -1;
|
||||
{ instead, round based on the next whole digit }
|
||||
if (trunc(intPartStack[stackPtr]-corrVal) > 5.0 - roundCorr) then
|
||||
@ -226,21 +229,23 @@ begin
|
||||
{ correction used with comparing to avoid rounding/precision errors }
|
||||
roundCorr := (1/exp((23-6-3)*ln(10)));
|
||||
end;
|
||||
rt_f16bit :
|
||||
rt_currency :
|
||||
begin
|
||||
maxlen:=16;
|
||||
minlen:=8;
|
||||
explen:=4;
|
||||
{ Different in TP help, but this way the output is the same (JM) }
|
||||
maxlen:=25;
|
||||
minlen:=10;
|
||||
explen:=0;
|
||||
{ correction used with comparing to avoid rounding/precision errors }
|
||||
roundCorr := (1/exp((16-4-3)*ln(10)));
|
||||
roundCorr := (1/exp((25-6-3)*ln(10)));
|
||||
end;
|
||||
rt_f32bit :
|
||||
rt_s128real :
|
||||
begin
|
||||
maxlen:=16;
|
||||
minlen:=8;
|
||||
explen:=4;
|
||||
{ Different in TP help, but this way the output is the same (JM) }
|
||||
maxlen:=25;
|
||||
minlen:=10;
|
||||
explen:=6;
|
||||
{ correction used with comparing to avoid rounding/precision errors }
|
||||
roundCorr := (1/exp((16-4-3)*ln(10)));
|
||||
roundCorr := (1/exp((25-6-3)*ln(10)));
|
||||
end;
|
||||
end;
|
||||
{ check parameters }
|
||||
@ -448,7 +453,11 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.11 2003-10-26 16:56:44 jonas
|
||||
Revision 1.12 2003-12-08 17:45:00 peter
|
||||
* currency support
|
||||
* dropped fixed16/32 support
|
||||
|
||||
Revision 1.11 2003/10/26 16:56:44 jonas
|
||||
* fixed web bug 2643
|
||||
|
||||
Revision 1.10 2003/09/06 17:06:59 florian
|
||||
|
Loading…
Reference in New Issue
Block a user