Exponential notation
Exponential notation is useful for both large and small numbers.
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 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
notationis 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
following 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