Exponential notation
purenumbers, in the sense that the character strings that describe numbers can be very long. For example:
10000000000 * 10000000000
100000000000000000000
.00000000001 * .00000000001
0.0000000000000000000001
For both large and small numbers some form of exponential notation
is useful, both to make long numbers more readable, and to make execution
possible in extreme cases. In addition, exponential notation is used
whenever the simple
form would give misleading information.
numeric digits 5
say 54321*54321
would display 2950800000
in long form. This is
clearly misleading, and so the result is expressed as 2.9508E+9
instead.
The integer following the E
represents a power of ten that is to be applied to the number. The E
can
be in uppercase or lowercase.
Certain character strings are numbers even though they do not appear
to be numeric to the user. Specifically, because of the format of
numbers in exponential notation, strings, such as 0E123
(0 times
10 raised to the 123 power) and 1E342
(1 times
10 raised to the 342 power), are numeric. In addition, a comparison
such as 0E123=0E567
gives a true result of 1
(0
is equal to 0). To prevent problems when comparing nonnumeric strings,
use the strict comparison operators.
12E7 = 120000000 /* Displays "1" */
12E-5 = 0.00012 /* Displays "1" */
-12e4 = -120000 /* Displays "1" */
0e123 = 0e456 /* Displays "1" */
0e123 == 0e456 /* Displays "0" */
The preceding numbers are valid for input data at all times. The
results of calculations are returned in either conventional or exponential
form, depending on the setting of NUMERIC DIGITS. If the number of
places needed before the decimal point exceeds DIGITS, or the number
of places after the point exceeds twice DIGITS, exponential form is
used. The exponential form REXX generates always has a sign following
the E
to improve readability. If the exponent is 0
,
then the exponential part is omitted—that is, an exponential part
of E+0
is never generated.
You can explicitly convert numbers to exponential form, or force them to be displayed in long form, by using the FORMAT built-in function (see FORMAT).
0
) appear before the decimal point, and the power of ten is always expressed
as a multiple of three. The integer part may, therefore, range from 1
through
999
. You can control whether Scientific or Engineering notation is used with the
instruction:
/* after the instruction */
Numeric form scientific
123.45 * 1e11 -> 1.2345E+13
/* after the instruction */
Numeric form engineering
123.45 * 1e11 -> 12.345E+12