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