問題描述:
處理數字,從各位開始,每三位添加一個逗號
function formatNum() {
// ...
}
formatNum(123) // "123"
formatNum(123.456) // "123.456"
formatNum(1234.56) // "1,234.56"
formatNum(1234567) // "1,234,567"
解決方案:
/**
* 數字每三位加一個逗號
* @param {String | Number} v 原始數字
* @return {String} 格式化的數字
*/
export const formatNum = (v = 0) => {
const n = Number(v);
if (!n) { return 0; }
let counter = 0;
// 處理小數點
const int = n.toString().split('.');
const num = int[0].split('');
const result = int[1] ? [`.${int[1]}`] : [];
for (let i = num.length - 1; i >= 0; i--) {
counter++;
result.unshift(num[i]);
if (!(counter % 3) && i !== 0) {
result.unshift(',');
}
}
return result.join('');
};