Javascript-數值運算 保留小數點位數,並對最后一位小數各種取整方法


今天遇到Javascript數值運算的坑,說到底,還是用得少啊。得多用多敲代碼多遇坑。

 

先介紹以下三個Javascript number取整運算方法.

Math.floor()  

對一個數退一取整 例:10.5 -> 10
Math.ceil() 對一個數進一取整 例:10.5 -> 11
Math.round()  對一個數四舍五入取整  例:10.5 -> 11

 

 

 

 

 

 

 

以上都是為了得到整數的方法

 

那么對於我們要對浮點數進行精確小數點運算,並在保留的最后一位小數上取整,請看以下解決方案

利用以上取整的方法,並對Number原型進行擴展,先將數值轉換為只有一位小數的整數,取整后再恢復為原來數值。

 

如“1.234”,保留兩位小數,那么我們先轉換為“123.4”,再利用取整方法取整后,

進一(“124”),退一(“123”),四舍五入(“123”),再去除以我們要保留位數 即10的2次方 (100),就會變為“1.24”,“1.23”,“1.23”這樣子。

//退一,向下
Number.prototype.toFloor = function(num){
  return Math.floor(this * Math.pow(10,num)) / Math.pow(10,num);
}

//進一,向上
Number.prototype.toCeil = function(num){
  return Math.ceil(this * Math.pow(10,num)) / Math.pow(10,num);
}

//四舍五入
Number.prototype.toRound = function(num){
  return Math.round(this * Math.pow(10,num)) / Math.pow(10,num);
}

 


免責聲明!

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



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