在 ActionScript 3.0 中,Number 数据类型可以表示整数、无符号整数和浮点数。但是,为了尽可能提高性能,应将 Number 数据类型仅用于浮点数,或者用于 int 和 uint 类型可以存储的、大于 32 位的整数值。要存储浮点数,数字中应包括一个小数点。如果您省略了小数点,数字将存储为整数。
Number 数据类型使用由 IEEE 二进制浮点算术标准 (IEEE-754) 指定的 64 位双精度格式。此标准规定如何使用 64 个可用位来存储浮点数。其中的 1 位用来指定数字是正数还是负数。11 位用于指数,以 2 为底进行存储。其余的 52 位用于存储有效位数(又称为尾数),有效位数是 2 的 N 次幂,N 即前面所提到的指数。
可以将 Number 数据类型的所有位都用于有效位数,也可以将 Number 数据类型的某些位用于存储指数,后者可存储的浮点数比前者大得多。例如,如果 Number 数据类型使用全部 64 位存储有效位数,则可以存储的最大数字为 265 - 1。如果使用 11 位存储指数,则 Number 数据类型可以存储的最大有效数字为 21023。
Number 类型可以表示的最大值和最小值存储在 Number 类的名为 Number.MAX_VALUE 和 Number.MIN_VALUE 的静态属性中。
Number.MAX_VALUE == 1.79769313486231e+308
Number.MIN_VALUE == 4.940656458412467e-324
尽管这个数字范围很大,但代价是此范围的精度有所降低。Number 数据类型使用 52 位来存储有效位数,因此,那些要求用 52 位以上的位数才能精确表示的数字(如分数 1/3)将只是近似值。如果应用程序要求小数达到绝对精度,则需要使用实现小数浮点算术(而非二进制浮点算术)的软件。
如果用 Number 数据类型来存储整数值,则仅使用 52 位有效位数。Number 数据类型使用这 52 位和一个特殊的隐藏位来表示从 -9,007,199,254,740,992 (-253) 到 9,007,199,254,740,992 (253) 的整数。
Flash Player 和 Adobe AIR 不但将 NaN 值用作 Number 类型的变量的默认值,而且还将其用作应返回数字、却没有返回数字的任何运算的结果。例如,如果您尝试计算负数的平方根,结果将是 NaN。其它特殊的 Number 值包括正无穷大 和负无穷大。
注: 在被 0 除时,如果被除数也是 0,则结果只有一个,那就是 NaN。在被 0 除时,如果被除数是正数,则结果为“正无穷大”;如果被除数是负数,则结果为“负无穷大”。