js浮點數保留位數方法封裝


大家在平時業務中應該經常跟小數打交道吧,有沒有被小數點的保留位數問題搞得頭疼啊。比如,保留一位小數,保留倆位小數,保留三位小數,向上取整、四舍五入等等。

而我最近在項目中正好遇到類似的問題:有的地方要求保留一位小數,有的地方要求保留倆位,有的地方要求四舍五入,有的地方要求向下取整。。。這些情形,總不能一個個來處理吧?於是乎,干脆封裝一個方法,解決上述令人頭疼的問題!話不多說,上代碼:

 1 /**
 2  * 
 3  * @param {number|string} num 需要處理的數字
 4  * @param {number} n 保留位數,默認1
 5  * @param {string} flag = 'ceil' || 'floor' 向上或向下保留,默認四舍五入
 6  * @returns {string}
 7  */
 8 function formatFloat(num, n = 1, flag) {
 9     var f = parseFloat(num);
10     if (isNaN(f)) {
11         return false;
12     }
13     if (flag === 'ceil') {
14         f = Math.ceil(num * Math.pow(10, n)) / Math.pow(10, n); // n 冪
15     } else if (flag === 'floor') {
16         f = Math.floor(num * Math.pow(10, n)) / Math.pow(10, n); // n 冪
17     } else {
18         f = Math.round(num * Math.pow(10, n)) / Math.pow(10, n); // n 冪
19     }
20     var s = f.toString();
21     var rs = s.indexOf('.');
22     //判定如果是整數,增加小數點再補0
23     if (rs < 0) {
24         rs = s.length;
25         s += '.';
26     }
27     while (s.length <= rs + n) {
28         s += '0';
29     }
30     return s;
31 }

結果:

 

 好了,如果該方法適合你,如果你經常需要處理這些小數的位數問題,將該方法用到你的項目中吧~

 更多項目中常見的方法封裝,傳送門https://github.com/wangruibin666/wang-utils 

腳踏實地行,海闊天空飛~

 


免責聲明!

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



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