导言: 数字

数字 (即用作 REXX 算术运算和内置函数的输入的字符串) 可以非常灵活地表达。 允许使用前导和尾部空格,并且可以使用指数表示法。

某些有效数字为:
    12         /* a whole number                      */
  '-76'        /* a signed whole number               */
    12.76      /* decimal places                      */
' +  0.003 '   /* blanks around the sign and so forth */
    17.        /* same as "17"                        */
      .5       /* same as "0.5"                       */
    4E9        /* exponential notation                */
     0.73e-7   /* exponential notation                */

在指数表示法中,一个数字包括一个指数,一个十的幂,在使用之前乘以该数字。 指数指示小数点的移动方式。 因此,在前面的示例中, 4E9 只是编写 4000000000的简短方法,而 0.73e-70.000000073的简短方法。

算术运算符 包括加法 (+) ,减法 (-) ,乘法 (*) ,幂 (**) ,除法 (/) ,前缀加法 (+) 和前缀减法 (-)。 此外,还有两个除法运算符: 整数除法 (%) 除法并返回整数部分; 余数 (//) 除法并返回余数。

算术运算的结果根据确定的规则被格式化为字符串。 这些规则中最重要的规则如下 (有关完整详细信息,请参阅 算术设施定义):
  • 计算结果的最大有效数字数为一些 (缺省值为 9,但您可以使用 NUMERIC NUMERIC 指令来改变此值,以提供所需的任何准确性)。 因此,如果结果需要超过 9 个数字,那么通常会将其四舍五入为 9 个数字。 例如, 2 除以 3 将生成 0.666666667 (它需要无限数量的数字以实现完美的准确性)。
  • 除除除除法和幂外,保留尾部零 (这与最流行的计算器不同,后者会除去结果的小数部分中的所有尾部零)。 因此,例如:
    2.40 + 2    ->    4.40
    2.40 - 2    ->    0.40
    2.40 * 2    ->    4.80
    2.40 / 2    ->    1.2
    对于大多数计算 (尤其是财务计算) ,此行为是可取的。

    如果需要,可以使用 STRIP 函数 (请参阅 STRIP) 或按 1 除法除去尾部零。

  • 零结果始终表示为个位数 0
  • 指数形式用于结果,具体取决于其值和 NUMERIC NUMERIC 的设置 (缺省值为 9)。 如果小数点之前需要的位数超过 NUMERIC DECIMAL 设置,或者该点之后的位数超过 NUMERIC 设置的两倍,那么该数字以指数表示法表示:
    1e6 * 1e6    ->    1E+12           /* not 1000000000000 */
    1 / 3E10     ->    3.33333333E-11  /* not 0.0000000000333333333 */