指数表記法

これまでに述べた数値の説明では、数字を説明する文字列が非常に項目の多くなる可能性があるという検出で、純粋な 数字を表します。 次に例を示します。
10000000000 * 10000000000
は、次のようになります。
100000000000000000000
および
.00000000001 * .00000000001
は、次のようになります。
0.0000000000000000000001

大きい数、小さい数どちらの場合にも、長い数値を 読みやすくするためと、極端な場合は実行できるようにするための両方について、 ある種の指数表記法は便利です。 指数表記は、単純な形式では情報を誤解する可能性がある場合にも使用されます。

次に例を示します。
numeric digits 5
say 54321*54321

長形式では 2950800000 と表示されます。 これは、明らかに間違いやすいので、結果は、2.9508E+9 として表されます。

したがって、数値の定義は、以下のように拡張されます。
構文図を読む構文図をスキップするblankssignblanksdigits数字. 数字. 数字digits.Esigndigitsblanks

E の後の整数は、その数値に適用される 10 の累乗を表します。 E は、大文字小文字どちらでもかまいません。

ユーザーには数値とは見えなくても、数値であるような特定の文字ストリングがあります。 例えば、指数表記の数値のフォーマット であるため、0E123 (0 掛ける 10 の 123 乗) と 1E342 (1 掛ける 10 の 342 乗) というストリングは数値です。 さらにまた、 0E123=0E567 という比較は、1 (0 は 0 に等しい) という 真の結果になります。 非数値のストリングを比較するときは、問題を避けるために厳密比較演算子を 使用してください。

以下にいくつか例を示します。
12E7   =    120000000           /* Displays "1" */
12E-5  =    0.00012             /* Displays "1" */
-12e4  =    -120000             /* Displays "1" */
0e123  =    0e456               /* Displays "1" */
0e123  ==   0e456               /* Displays "0" */

上述の数値は、入力データについては常に有効です。 計算の結果は、NUMERIC DIGITS の設定値に応じて、従来の形式または指数形式 のいずれかで戻されます。 小数点以上の桁数が、DIGITS を超えているか、または小数点以下 の桁数が DIGITS の 2 倍を超えていると、その数は、指数形式が使用されます。 REXX が生成する指数形式では、常に E の後に符号が付けられて、 読みやすくなっています。 指数が 0 の場合は、指数部分は省略されます (つまり、 E+0 という指数部は生成されません)。

FORMAT 組み込み機能を使用して、数値を指数関数形式に明示的に変換したり、強制的に項目の多い形式で表示したりできます。(FORMAT を参照)。

科学計算表記法は、指数表記法の 1 つであり、小数点の左側がゼロ以外の 1 個の数字になるように、10 の累乗で調整されたものです。 技術計算表記法は、指数表記法の 1 つであり、1 桁から 3 桁の数字 (ただし、単なる 0 は除く) が小数点の前にあり、10 の累乗が常に 3 の倍数として表されます。 したがって、整数の部分は 1 から 999 の範囲に なります。 科学計算、技術計算表記のどちらを使用するかを、次の命令を用いて制御できます。
構文図を読む構文図をスキップするNUMERIC FORMSCIENTIFICENGINEERINGVALUE expression;
科学計算表記がデフォルトです。
/* after the instruction */
Numeric form scientific

123.45 * 1e11     ->     1.2345E+13

/* after the instruction */
Numeric form engineering

123.45  * 1e11    ->    12.345E+12