以下是w3school的定義:
定義和用法
toFixed() 方法可把 Number 四舍五入為指定小數位數的數字。
語法
NumberObject.toFixed(num)
參數 | 描述 |
---|---|
num | 必需。規定小數的位數,是 0 ~ 20 之間的值,包括 0 和 20,有些實現可以支持更大的數值范圍。如果省略了該參數,將用 0 代替。 |
返回值
返回 NumberObject 的字符串表示,不采用指數計數法,小數點后有固定的 num 位數字。如果必要,該數字會被舍入,也可以用 0 補足,以便它達到指定的長度。如果 num 大於 le+21,則該方法只調用 NumberObject.toString(),返回采用指數計數法表示的字符串。
拋出
當 num 太小或太大時拋出異常 RangeError。0 ~ 20 之間的值不會引發該異常。有些實現支持更大范圍或更小范圍內的值。
當調用該方法的對象不是 Number 時拋出 TypeError 異常。
實例
在本例中,我們將把數字舍入為僅有一位小數的數字:
Show the number 13.37 with one decimal: <script type="text/javascript"> var num = new Number(13.37); document.write (num.toFixed(1)) </script>
輸出:
Show the number 13.37 with one decimal:
13.4
這里的輸出“13.4”其實是個Sting類型的,即"13.4",一定要注意!!!!
因為你如果是經過toFixed()方法,來進行數據處理之后,還要進行數值計算的話,那么一定要轉成number類型!!!不然,一定出錯,因為返回值是string字符串!!!
切記!!!!
string轉換成number的方法:
JS 中將 number 轉換為 string 我們比較熟悉,直接用toString() 的方法就可以了;那么將 string 轉換成為 number 都有些什么方法呢?如下便簡單的列舉了一些,以便記錄,說不定什么時候就用到了~~
我們可以使用parseInt ,或者unary plus 或者parseFloat with floor 或者Math.round這些方式,請看如下具體的代碼:
1):parseInt
var x = parseInt("10"); // 10
但是這種只帶一個參數的方式會存在詬病。比如我們想將字符串 "010" 轉化為數字 10,直接用這個方法將會返回8.
var x = parseInt("010"); // 8
因此這里提供另外一個方法,帶有兩個參數:第一個是目標轉換字符串,第二個用來指定將字符串轉化為幾進制的數字,並且radix的范圍是(2~36)
parseInt(string, radix)
例如:
var x = parseInt("1000", 10); // 1000
2):unary plus (一元操作符"+"),這種方式非常的巧妙
var x = +"1000"; // 1000
var x = +"1000.12"; // 1000.12
3):parseFloat 方法可以將對應的字符串轉化為浮點類型的數字
var x = parseFloat("1000.01") // 1000.01
4):Math.floor 的方式可以對字符和數字進行向下取整
var x = Math.floor("1000.01"); // 1000
var x = Math.floor(1000.01); // 1000
var x = Math.floor(1000.91); // 1000
5):Math.round 的方式可以對字符和數字進行四舍五入取整
var x = Math.round("1000"); //1000 equivalent to round("1000",0)
var x = Math.round("1000.56"); // 1001
var x = Math.round("1000.23"); // 1000
另:以前的瀏覽器,或者09年的時候,會出現ie6左右吧,會出現如下的錯誤:
var money=0.00542;//0.006;
alert(Number(money).toFixed(2));
現在不會了,現在我ie11,firefox都是輸出0.01!!!