1. 程式人生 > >重寫toFixed方法——以既可以指定小數位又可返回數字型別

重寫toFixed方法——以既可以指定小數位又可返回數字型別

1、我們知道Math物件裡的 Math.round( num ) 方法返回 num 的最接近整數,有一點近似於四捨五入的方法,這個方法只能得到整數。

2、而 num.toFixed( n )方法返回的是 num 的指定小數位數為 n 的字串,注意:這裡返回的是字串,其實這個方法還有另一個坑,它無法把整數小數化。比如:你在控制檯列印 3.toFixed(2),那麼控制檯會報錯。

3、所以我們在很多時候需要一種方法既可以指定小數位數,同時又可以返回的是數字,在這裡推薦很久以前瞭解過的一種方法:

   function toFixed(num,d){
        num *=Math.pow(10,d);
        num = Math.round(num);
        return num/(Math.pow(10,d));
    }

4、 Math.pow( num ,a) 方法 返回 num 的 a 次方,所以這裡巧妙的利用了這個方法以達成目的。

5、測試執行結果:

 5.1  console.log( toFixed(123.4567,3) );

這裡寫圖片描述

5.2   console.log( toFixed(123.4567,0) );

這裡寫圖片描述

 5.3   console.log( toFixed(123.4567,-1) );

這裡寫圖片描述

我們看到不管是傳的正數、0或者是負數,都能夠正常的得到結果,所以這種方法特別贊。