```Search                        Top                                  Index
```
```HELP DECIMALS            Mark Rubinstein, December 1984, A.S. Oct 1986

For a tutorial introduction to the different kinds of numbers that
POPLOG recognises and uses see TEACH DECIMALS.

POPLOG has several kinds of numbers -
integers,
bigintegers,
decimals ("reals")
double decimals (called "ddecimals" in POPLOG)
complex numbers
ratios

*DDECIMAL numbers are more accurate (contain more significant digits)
than DECIMAL numbers. The other side of the coin is that POPLOG has to
use more memory to store them, and their use can cause additional
"garbage collections".

When a number is read (from a file or from the terminal) without a
decimal point, an INTEGER is created.  If a decimal point is read then a
DDECIMAL is created. However if the result of a computation is a real
number then POPLOG returns a DECIMAL number,  e.g.

dataword(1) =>
** integer

dataword(4.5) =>
** ddecimal

dataword(9/2) =>
** decimal

(See HELP *DATAWORD).

POPLOG can be made to return DDECIMAL numbers by assigning TRUE to
POPDPRECISION (see REF *POPDPRECISION).

It is also possible to ensure that a number read in is either a single
or double precision number, by using "s0" or "d0" at the end, e.g.

dataword(1.0s0) =>
** decimal

dataword(1.0d0) =>
** ddecimal

An "exponent" notation is available for decimals using "e" followed by
the power of 10 to be used:
3.123e3 =>
** 3123.0

3.123e-3 =>
** 0.003123

If, instead of "e" "s" is used, the number will be read as a SINGLE
decimal number,e.g.

3.123s-3=>
** 0.003123