指数表示法
指数表示法对于大数和小数都很有用。
前面的数字描述描述了
纯数字,也就是说描述数字的字符串可能很长。 例如:
10000000000 * 10000000000会给100000000000000000000和.00000000001 * .00000000001会给0.0000000000000000000001对于大数和小数,某种形式的指数表示法都很有用,既能使长数更易读,又能在极端情况下使执行成为可能。 此外,只要 simple表单提供误导性信息,就会使用指数表示法。
例如:
numeric digits 5
say 54321*54321将以长格式显示 2950800000 。 这显然具有误导性,因此结果表示为 2.9508E+9 。某些字符串是数字,即使它们对用户不显示为数字。 具体而言,由于采用指数表示法的数字格式,字符串 (例如, 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 的倍数。 因此,整数部分的范围可以是 1 到 999。 您可以控制是将 "科学" 表示法还是 "工程" 表示法与以下指令配合使用:科学记数法是缺省值。/* after the instruction */
Numeric form scientific
123.45 * 1e11 -> 1.2345E+13
/* after the instruction */
Numeric form engineering
123.45 * 1e11 -> 12.345E+12