Number是與數(shù)字值對應(yīng)的引用類型。要?jiǎng)?chuàng)建Number對象,可以在調(diào)用Number構(gòu)造函數(shù)時(shí)向其 中傳遞相應(yīng)的數(shù)值。下面是一個(gè)例子: var numberObject=new Number (10); 與Boolean類型一樣,Number類型也重寫了valueOf(),toLocaleString()和toString()方法。重寫后的valueOf()方法返回對象表示的基本類型的數(shù)值,另外兩個(gè)方法則返回字符串形式的數(shù)值。我們在第3章還介紹過,可以為toString()方法傳遞一個(gè)表示基數(shù)的參數(shù),告訴它返回幾進(jìn)制數(shù)值的字符串形式,如下面的例子所示:
var riurri=10;
alert (num.toString()); //"10"
alert (num. toString(2)); //"1010"
alert(num. toString(8)); //"12"
alert (num.toString (10)); //"lo"
alert (num.toString(16)); //"a"
除了繼承的方法之外,Number類型還提供了一些用于將數(shù)值格式化為字符串的方法。
其中,toFixed()方法會按照指定的小數(shù)位返回?cái)?shù)值的字符串表示,南昌網(wǎng)站設(shè)計(jì)公司技術(shù)人員舉例說明,例如:
var num = 10;
alert(num.toFixed(2)) //"10.00"
這里給toFixed()方法傳入了數(shù)值2,意思是顯示幾位小數(shù),于是,這個(gè)方法返回了"10.
00",即以0填補(bǔ)了必要的小數(shù)值。如果數(shù)值本身包否酌不聶位比指定的還多,那么接近指定的最大小數(shù)位的值就會舍入,如下面的例子所示:
var num = 10.005;
alert(num.toFixed(2)) //"10.01"
能夠自動(dòng)舍入的特性,使得toFixed()方法很適合處理貨幣值。但需要注意的是,不同瀏覽器給這個(gè)方法設(shè)定的舍入規(guī)則可能會有所不同。
南昌網(wǎng)站建設(shè)公司工程師需要說明的是,toFixed()方法可以表示帶有0到20個(gè)小數(shù)位的數(shù)值。但這只是標(biāo)準(zhǔn)實(shí)現(xiàn)的范圍,有些瀏覽器也可能支持更多位數(shù)。
另外可用于格式化數(shù)值的方法是toExponential(),該方法返回以指數(shù)表示法(也稱e表示法)表示的數(shù)值的字符串形式。與toFixed一樣,toExponential()也接收一個(gè)參數(shù),而且該參數(shù)同樣也是指定輸出結(jié)果中的小數(shù)位數(shù)。看下面的例子:
var num=10;
alert (num.toExponential(1)); //"1.0e+1"
以上代碼輸出了"l.Oe+l”;不過,這么小的數(shù)值一般不必使用e表示法。如果你想得到表示某個(gè)數(shù)值的最合適的格式,就應(yīng)該使用toPrecision()方法。
對于一個(gè)數(shù)值來說,toPrecision()方法可能會返回固定大小(fixed)格式,也可能返回指數(shù)(exponential)格式;具體規(guī)則是看哪種格式最合適。這個(gè)方法接收一個(gè)參數(shù),即表示數(shù)值的所有數(shù)字的位數(shù)(不包括指數(shù)部分)。請看下面的例子:
var num=99; alert(num.toPrecision(1)); //"1e+2"
alert(num.toPrecision(2)); //"99"
alert(num.toPrecision(3)); //"99.0"
以上代碼首先完成的任務(wù)是以一位數(shù)來表示99,結(jié)果是”1e+2”,即1
00。因?yàn)橐晃粩?shù)無法準(zhǔn)確地表示99,因此toPrecision()就將它向上舍人為100,這樣就可以使用一位數(shù)來表示它了。而接下來的用兩位數(shù)表示99,當(dāng)然還是”99”。最后,在想以三位數(shù)表示99時(shí),toPrecision()方法返回了"99.0"。實(shí)際上,toPrecision()會欞據(jù)要處理的數(shù)值決定到底是調(diào)用toFixed()還是調(diào)用toExponential()。而這三個(gè)方法都可以通過向上或向下舍入,做到以最準(zhǔn)確的形式來表示帶有正確小數(shù)位的值。
與Boolean對象類似,Number對象也以后臺方式為數(shù)值提供了重要的功能。但與此同時(shí),我們?nèi)匀徊唤ㄗh直接實(shí)例化Number類型,而原因與顯式創(chuàng)建Boolean對象一樣。具體來講,就是在使用typeof和instanceof操作符測試基本類型數(shù)值與引用類型數(shù)值時(shí),得到的結(jié)果完全不同,如下面的例子所示:
var numberObject=new Number (10);
var numberValue=10;
alert(typeof munberObject); //"obj ect"
alert(typeof numberValue); //"number"
alert (numberObject instanceof Number); //true
alert (numberValue instanceof Number); //false
在使用typeof操作符測試基本類型數(shù)值時(shí),始終會返回"number",而在測試Number對象時(shí),則會返回"object"。類似地,Number對象是Nunber類型的實(shí)例,而基本類型的數(shù)值則不是。
希望對廣大站長或網(wǎng)站建設(shè)公司或從事企業(yè)網(wǎng)站建設(shè)的團(tuán)隊(duì)有所幫助,如對此不太理解的,可以與南昌網(wǎng)絡(luò)公司百恒網(wǎng)絡(luò)技術(shù)部聯(lián)系。我們很高與廣大站長和網(wǎng)站建設(shè)公司技術(shù)人員分享我們的技術(shù)和經(jīng)驗(yàn)。