指数表示法

指数表示法对于大数和小数都很有用。

前面的数字描述描述了 数字,也就是说描述数字的字符串可能很长。 例如:
10000000000 * 10000000000
会给
100000000000000000000
.00000000001 * .00000000001
会给
0.0000000000000000000001
对于大数和小数,某种形式的指数表示法都很有用,既能使长数更易读,又能在极端情况下使执行成为可能。 此外,只要 simple 表单提供误导性信息,就会使用指数表示法。
例如:
numeric digits 5
say 54321*54321
将以长格式显示 2950800000 。 这显然具有误导性,因此结果表示为 2.9508E+9
因此,数字的定义扩展为:
读取语法图跳过可视语法图 blanks 签名blanks数字数字.数字.数字数字.E签名数字 blanks
E 后面的整数表示要应用于数字的 10 的幂。 E 可以是大写或小写。

某些字符串是数字,即使它们对用户不显示为数字。 具体而言,由于采用指数表示法的数字格式,字符串 (例如, 0E123 (0 表示 123 次幂) 和 1E342 (1 表示 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 NUMERIC 的设置。 如果小数点之前需要的位数超过了 DECIMAL ,或者该点之后的位数超过了位位数的两倍,那么将使用指数形式。 指数形式 REXX 生成的始终具有跟随 E 的符号,以提高可读性。 如果指数为 0,那么将省略指数部分; 即,从不生成 E+0 的指数部分。

您可以使用内置函数 FORMAT 将数字转换为指数形式,或强制以长格式显示(请参阅 FORMAT )。

科学表示法 是指数表示法的一种形式,用于调整 10 的幂,以便在小数点左侧显示一个非零数字。 工程表示法是指数表示法的一种形式,其中 1 到 3 位数字 (但不是简单的 0) 出现在小数点之前,而 10 的幂始终表示为 3 的倍数。 因此,整数部分的范围可以是 1999。 您可以控制是将 "科学" 表示法还是 "工程" 表示法与以下指令配合使用:
读取语法图跳过可视语法图 NUMERIC FORM SCIENTIFICENGINEERINGVALUE表达式 ;
科学记数法是缺省值。
/* after the instruction */
Numeric form scientific

123.45 * 1e11     ->     1.2345E+13

/* after the instruction */
Numeric form engineering

123.45  * 1e11    ->    12.345E+12