數值物件 Number
- 詳細內容
- 分類:Javascript
- 發佈:2013-01-05, 週六 11:14
- 點擊數:4007
數值(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:
傳回指定之物件的數值。
如果你覺得寫的還不錯,請給我一個讚喔!!
按個讚!~支持本站!~
你可能會有興趣的文章: