你对Flex数据类型中Number数据类型的用法是否了解,这里和大家分享一下,为了尽可能提高性能,应将Number数据类型仅用于浮点数,或者用于int和uint类型可以存储的、大于32位的整数值。
Flex数据类型
数据类型说明
基元数据类型包括Boolean、int、Null、Number、String、uint和void。ActionScript核心类还定义下列复杂数据类型:Object、Array、Date、Error、Function、RegExp、XML和XMLList。下面看一下Number数据类型的概念。
Number数据类型
在ActionScript3.0中,Number数据类型可以表示整数、无符号整数和浮点数。但是,为了尽可能提高性能,应将Number数据类型仅用于浮点数,或者用于int和uint类型可以存储的、大于32位的整数值。要存储浮点数,数字中应包括一个小数点。如果您省略了小数点,数字将存储为整数。
◆Number数据类型使用由IEEE二进制浮点算术标准(IEEE-754)指定的64位双精度格式。此标准规定如何使用64个可用位来存储浮点数。其中的1位用来指定数字是正数还是负数。11位用于指数,它以二进制的形式存储。其余的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+308Number.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)之间的整数。
FlashPlayer不但将NaN值用作Number类型的变量的默认值,而且还将其用作应返回数字、却没有返回数字的任何运算的结果。例如,如果您尝试计算负数的平方根,结果将是NaN。其它特殊的Number值包括"正无穷大"和"负无穷大"。
注意
在被0除时,如果被除数也是0,则结果只有一个,那就是NaN。在被0除时,如果被除数是正数,则结果为正无穷大;如果被除数是负数,则结果为负无穷大。
【编辑推荐】