數值物件 Number

數值(Number)物件:

javascript 與其他程式語言不太一樣,沒有數值太多奇奇怪怪的格式,

像是長整數、短整數等等這些在javascript 都是不存在的。

javascript的數值只有一種,就是符合IEEE 754的64位元的倍精度浮點數( IEEE 754 )。

即便是整數,也依然是用64位元的倍精度浮點數來表示。

除了基本的資料型態外,還有數值物件。

數值(Number)物件的建立:

使用new敘述建立數值(Number)物件,如下:

mynum = new Number(value);

value:數值物件的值。

其實很少有機會需要使用new 敘述來建立一個Number 物件。

數值(Number)物件的屬性:

下面用列表表示出Number物件的所有屬性:

屬性 說明
MAX_VALUE 傳回可以表示的最大的數值
MIN_VALUE 傳回可以表示的最小的數值
NaN 傳回NaN
NEGATIVE_INFINITY 傳回負無限大
POSITIVE_INFINITY 傳回正無限大

值得注意的是這些屬性其實不會被繼承,

而只是單純的存在在Number 物件。這些屬性的值也不能被修改。

<script type="text/javascript">
x=new Number(123);
document.writeln(x +"<br/>");
document.writeln(x.MAX_VALUE +"<br/>");   //==> 會返回undefined
document.writeln(Number.MAX_VALUE +"<br/>");
document.writeln(Number.MIN_VALUE+"<br/>");
document.writeln(Number.NaN+"<br/>");
document.writeln(Number.NEGATIVE_INFINITY+"<br/>");
document.writeln(Number.POSITIVE_INFINITY+"<br/>");
</script>

程式執行結果:

123
undefined   // ==> MAX_VALUE 不會被繼承,所以x物件中並沒有MAX_VALUE的屬性。
1.7976931348623157e+308  // ==> 1.7976931348623157 *10308.
5e-324   // ==>5*10-324.
NaN
-Infinity
Infinity

數值(Number)物件的方法:

下面列表列出Number物件的方法:

方法 功能
toExponential 傳回指數標記法表示的數字字串。
toFixed 傳回固定小數點的數字字串。
toPrecision 傳回固定位數的數字字串。
toString 傳回物件的字串表示
toLocaleString 傳回物件的地區化數字字串
valueOf 傳回指定之物件的數值。

注意!前5個傳回的值都是字串。

toExponential:

傳回指數標記法表示的數字字串。

語法:

NumberObject.toExponential(fractionDigits)

fractionDigits:一個大於等於0,小於等於20的數字。代表指數表示法的數字中,

小數點後面要有幾個位數,超過的位數會四捨5入,不足的會補0。

如果這數字小於0或大於20,或是undefined,那會丟出一個RangeError的例外。

如果省略這個值,那會用最大位數來表示。

範例:

<script type="text/javascript">
 var mynum=new Number(123456)
 document.writeln(mynum.toExponential() + "</br>");
 document.writeln(mynum.toExponential(1) + "</br>");
 document.writeln(mynum.toExponential(2) + "</br>");
 document.writeln(mynum.toExponential(3) + "</br>");
 document.writeln(mynum.toExponential(20) + "</br>");
 </script>

傳回:

1.23456e+5
1.2e+5
1.23e+5
1.235e+5
1.23456000000000000000e+5

toFixed:

傳回固定小數點的數字字串。

語法:

NumberObject.toFixed(fractionDigits)

fractionDigits:一個大於等於0,小於等於20的數字。代表小數表示法的數字中,

小數點後面要有幾個位數,超過的位數會四捨5入,不足的會補0。

如果這數字小於0或大於20,那會丟出一個RangeError的例外。

如果省略或是 undefined,那會被當作0。

範例:

<script type="text/javascript">
var mynum=new Number(1.23456)
document.writeln(mynum.toFixed() + "</br>");
document.writeln(mynum.toFixed(1) + "</br>");
document.writeln(mynum.toFixed(2) + "</br>");
document.writeln(mynum.toFixed(3) + "</br>");
document.writeln(mynum.toFixed(20) + "</br>");
document.writeln(mynum.toFixed(undefined) + "</br>");
</script>

輸出:

1
1.2
1.23
1.235
1.23456000000000000000
1

toPrecision:

傳回固定位數的數字字串。

語法:

NumberObject.toPrecision(precision)

precision:一個大於等於1,小於等於21的數字,代表整數加小數的總位數,

超過的位數會四捨5入,不足的會補0。如果這數字小於1或大於21,

那會丟出一個RangeError的例外。

如果precision是 undefined,那會傳回ToString(),在IE試了一下,

會有範圍錯誤的訊息,其他沒試過。

範例:

<script type="text/javascript">
 var mynum=new Number(123.456)
 document.writeln(mynum.toPrecision() + "</br>");
 document.writeln(mynum.toPrecision(1) + "</br>");
 document.writeln(mynum.toPrecision(2) + "</br>");
 document.writeln(mynum.toPrecision(3) + "</br>");
 document.writeln(mynum.toPrecision(4) + "</br>");
 document.writeln(mynum.toPrecision(20) + "</br>");
 </script>

輸出:

123.456
1e+2
1.2e+2
123
123.5
123.45600000000000000

toString:

傳回物件的字串表示

語法:

NumberObject.toString(radix)

radix:數字的基數,是一個大於等於2小於等於36的數字。如果是0或是undefine,

那會使用預設值10。不過在IE試用了一下undefined,會有錯誤。

範例:

<script type="text/javascript">
 var mynum=new Number(123.456)
 document.writeln(mynum.toString() + "</br>");
 document.writeln(mynum.toString(2) + "</br>");
 document.writeln(mynum.toString(3) + "</br>");
 document.writeln(mynum.toString(4) + "</br>");
 document.writeln(mynum.toString(36) + "</br>");
 </script>

輸出:

123.456
1111011.0111010010111100011010100111111011111001110111
11120.11002210211000212022212010000
1323.13102330122213323321313
3f.gez4w97ry0

toLocaleString:

傳回物件的地區化數字字串。

valueOf:

傳回指定之物件的數值。

smiley如果你覺得寫的還不錯,請給我一個讚喔!!smiley

 
 

  按個讚!~支持本站!~

FB推薦載入中  

你可能會有興趣的文章:

回到頂部