js四舍五入並保留兩位小數


Math.Round()函數,能夠對一個浮點數進行四舍五入,但是返回的結果是個整數,無法精確到小數點后,比如0.123,Math.round()返回0。

Number.toFixed()方法,能保留小數點后面的指定位數,但如果執行 5.1.toFixed(2) 的話,會返回5.10,而不是我們期待的5.1,所以,這個方法也不太可取。

最簡單實現的方法是,假設我要對0.409進行四舍五入並保留兩位小數,如果直接調用Math.round()的話,結果是0,如果直接調用.toFixed(2)方法的話,會返回0.40,最簡單有效的方法就是對0.409先乘以100,再調用Math.round(),然后再除以100,就OK了。

var number = 0.409; alert(Math.round(number * 100) / 100); //輸出0.41

如上,如果是三位小數

Math.round(number * 1000) / 1000)

不確定是多少位小數,則寫一個方法

// num為傳入的值,n為保留的小數位 function fomatFloat(num,n){ var f = parseFloat(num); if(isNaN(f)){ return false; } f = Math.round(num*Math.pow(10, n))/Math.pow(10, n); // n 冪 var s = f.toString(); var rs = s.indexOf('.'); //判定如果是整數,增加小數點再補0 if(rs < 0){ rs = s.length; s += '.'; } while(s.length <= rs + n){ s += '0'; } return s; } 

以上代碼將數值和需要保留位數傳入fomatFloar函數中,並判定如果不足長度時補0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM