Exponential Notation
The preceding description of numbers
describes
purenumbers, in the sense that the character strings that describe numbers can be very long. For example:
10000000000 * 10000000000
would give
100000000000000000000
and
.00000000001 * .00000000001
would give
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
simpleform would give misleading information.
For example:
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 definition of numbers is, therefore, extended as:.
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 raised to the 123 power) and
1E342
(1 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.
Here are some examples:
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 page FORMAT).
Scientific notation is a form of exponential notation that
adjusts the power of ten so a
single nonzero digit appears to the left of the decimal point.
Engineering notation
is a form of exponential notation in which
from one to three digits (but not simply
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:.
Scientific notation is the default.
/* after the instruction */
Numeric form scientific
123.45 * 1e11 -> 1.2345E+13
/* after the instruction */
Numeric form engineering
123.45 * 1e11 -> 12.345E+12