與string對象類似,我們需要先創建一個number對象,然后才能使用number對象的各種方法和屬性。要創建一個number對象,可以使用如下代碼:
var firstnumber = new number(123);
var secondnumber = new number('123');
然而,也可以聲明一個基本數據類型的數值,然后把它作為一個number對象使用。javascript將自動實現從數值到number對象的轉換:
var mynumber = 123.765;
與string對象類似,只要javascript能推斷出需要轉換的對象類型,javascript就能在后臺自動地實現從基本類型到對象類型的轉換。例如對于如下代碼:
var mynumber = "123.567";
javascript能正確地推斷出這是一個字符串類型,而不是一個數值類型。因此,不能使用number對象的任何方法。
下面將介紹number對象的一個最常用的方法—— tofixed()方法。
tofixed()方法是javascript 1.5和jscript 5.5中新加入的方法,因此,僅在netscape 6+或ie 5.5+瀏覽器中支持。該方法用于截取指定小數點位數的數字。下面用一個計算營業稅的例子來說明。假如某個商品的價格是9.99美元,而營業稅是7.5%,因此加上營業稅之后的價格將是10.73925美元。然而,對于貨幣交易來說這個值是有問題的—— 需要將稅后價格截取到小數點之后的兩位數即可。下面是一個例子:
var itemcost = 9.99;
var itemcostaftertax = 9.99 * 1.075;
document.write("item cost is $" + itemcostaftertax + "<br>");
itemcostaftertax = itemcostaftertax.tofixed(2);
document.write("item cost fixed to 2 decimal places is " + itemcostaftertax);
第一個document.write()語句將在頁面上輸出如下信息:
item cost is 10.73925
但是,這并不是我們需要的格式,我們只需要輸出到小數點之后的兩位數,所以在下面這行代碼中使用了tofixed()方法截取小數點之后的兩位數字:
itemcostaftertax = itemcostaftertax.tofixed(2);
這里使用了number對象的tofixed()方法,將變量itemcostaftertax中的值截取至小數點后的兩位。tofixed()方法只有一個參數,就是我們希望截取的小數點的位數。截取到小數點之后的兩位數,則第二個document.write()語句將在頁面上輸出如下信息:
item cost fixed to 2 decimal places is 10.74
也許你會感到奇怪,為什么截取的結果是10.74而不是10.73呢?tofixed()方法不僅僅截去多余的小數位,同時它還根據截取位置的下一個小數位進行四舍五入。例如,對于數值10.739,截取到小數點后的兩位數,結果將是10.74。而對于數值10.732,截取到小數點后的兩位數,結果將是10.73。
注意,在javascript中我們只能截取小數點之后0位~20位的小數。
tofixed()方法僅被高版本的瀏覽器所支持,所以在使用之前最好先檢查一下瀏覽器是否支持該方法,檢查的代碼如下所示:
var varnumber = 22.234;
if (varnumber.tofixed)
{
// browser supports tofixed() method
varnumber = varnumber.tofixed(2)
}
else
{
// browser doesn’t support tofixed() method so use some other code
var div = math.pow(10,2);
varnumber = math.round(varnumber * div) / div;
}
新聞熱點
疑難解答