skip to main |skip to sidebar

2007-05-03

鲜为人知的细节 - Number类

从AS2.0转到AS3.0的人可能对新加的类十分了解,但扩展的类可能就有些生疏了。下面来讲一下简单却容易忽略的细节。

Number是能表示浮点小数和整数的类型。它是在IEEE-754里定义的64-bit的双精度浮点小数,可以描述4.94e-324 ~ 1.80e+308的值。相当于Java的Double。(注意,他与AS2.0的Number不一样)

toFixed()(AS3.0新添加)

AS3 function toFixed(fractionDigits:uint):String

toFixed()是保留fractionDigits位小数,再变化为字符串。fractionDigits的范围是0~20。

Code:Actionscript
var num1:Number = 7.31843;
trace(num1.toFixed(2)); // => 7.32
var num2:Number = 4;
trace(num2.toFixed(2)); // =>4.00

toExponential()(AS3.0新添加)

AS3 function toExponential(fractionDigits:uint):String

toExponential()与toFixed()差不多,只是结果用科学技术表示法表示。fractionDigits的范围是0~20。

Code:Actionscript
var num1:Number = 731843;
trace(num1.toExponential(2)); // => 7.31e+5
var num2:Number = 4;
trace(num2.toExponential(2)); // => 4.00
var num3:Number = 0.731843;
trace(num3.toExponential(2)); // => 7.31e-1

注意,如果是0~10的值,就不会用科学技术表示法表示。

toPrecision()(AS3.0新添加)

AS3 function toPrecision(precision:uint):String

toPrecision()是保留precision位有效位数,再返回值,返回形式是小数表示法或科学技术表示法。precision的范围是0~21。

Code:Actionscript
var num1:Number = 73.1843;
trace(num1.toPrecision(3)); // => 73.1
var num2:Number = 4000;
trace(num2.toPrecision(3)); // => 4.00e+3

没有评论: