重寫toFixed方法——以既可以指定小數位又可返回數字型別
阿新 • • 發佈:2019-01-23
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或者是負數,都能夠正常的得到結果,所以這種方法特別贊。