Compiler Number Conversion

The ALGOL compiler can convert into internal format a maximum of 24 significant decimal digits of mantissa in double-precision. The effective exponent, which is the explicit exponent value following the “@@” sign minus the number of digits to the right of the decimal point, must be less than 29604 in absolute value. For example, the final fractional zero cannot be specified in the smallest, positive, normalized, double-precision number shown above: –29581 –(23 fractional digits) = –29604. Leading zeros are not counted in determining the number of significant digits. For example, 0.0002 has one significant digit, but 1.0002 has five significant digits.

The compiler accepts any value that can be represented in double-precision (not more than 24 significant decimal digits) as an unsigned number. If this unsigned number does not contain an exponent part with “@@” (specifying a double-precision value), then if the value can be represented in single-precision it is; otherwise, the value is represented in double-precision.

In some internal computations, a double-precision integer might be required or enforced. A double-precision floating point with exponent equal to 13 is used as the canonical representation of a double-precision integer; an operand in this format is called a double integer. The maximum magnitude that can be represented in this format is 2**78 - 1, or 8**26 - 1, or 302,231,454,903,657,293,676,543.