摘要
在開發中展示點贊數時,當數量級超過10000后,需要使用更加簡潔的小數式去顯現數量(例如1.22萬),下面就給大家分享數量小數式后保留兩位小數的實作方式,
四舍五入
使用toFixed()方法處理小數的四舍五入,運行示例如下:
// 四舍五入
var num =2.2354234234;
num = num.toFixed(2);
console.log('num=', num);
運次測驗結果:

不四舍五入
不四舍五入有兩種方案,一種是Math.floor()方法,一種是正則匹配,運行示例如下:
·Math.floor():先將小數變整數,然后再保留小數位數,
// Math.floor()
var num2 = Math.floor(2.2344234234 * 100) / 100;
console.log('num2=',num2);
運行測驗結果:

·正則匹配:先將小數轉為字串,再使用正則匹配輸出保留小數位數,
// 正則匹配
var num3 = Number(6.2344234234.toString().match(/^\d+(?:\.\d{0,2})?/));
console.log('num3=',num3);
運行測驗結果:

Math.floor()方法存在精度誤差問題
Math.floor()方法容易出現精度誤差問題,例如:小數8.54保留兩位小數,具體bug運行示例如下:
// 精度誤差示例
var num4 = Math.floor(8.54*100) / 100;
console.log('實際值:8.54');
console.log('Math.floor列印的值',num4);
運行測驗結果:

終極完美解決小數保留位數精度方案
先將數字(小數)轉換為字串,然后再進行截取,最后轉回數字(小數),完美解決保留小數位數精度問題,
// 解決精度方案
var num5 = 8.54342345;
var numStr = num5.toString();
var idx = numStr.indexOf('.');
var res = Number(numStr.slice(0, idx + 3));
console.log('res=',res);
運行測驗結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/102391.html
標籤:JavaScript
上一篇:網站的favicon圖示
下一篇:小程式筆記上
