很久没有写技术相关的博客了,刚好看到一个题目就想着写一个解法吧,因为简单,所以可能会比较实用。
问:请写出一个格式化金额的方法。
这个其实挺常见的,不过程序员都是比较懒的能上网搜的到的肯定不会自己写,有Git仓库的肯定直接拉来就用,我当然也不例外。
所以我就找了一个网上的方法。
//* 金额千分位加逗号,保留2位小数,不足补零,否则四舍五入
// * 参数说明:
// * num:要格式化的数字 string或者number
// * decimals:保留几位小数
// * dec_point:小数点符号
// * thousandsSep:千分位符号
// return 金额格式的字符串,如'1,234,567.45'
// * */
function number (num, decimals, thousandsSep) {
if (isNaN(num)) {
num = '0.00'
}
let prec = !isFinite(+decimals) ? 0 : Math.abs(decimals) // 保留的位数一定是有限位数的正整数
let sep = (typeof thousandsSep === 'undefined') ? ',' : thousandsSep
let s = num.toString().replace(/,/g, '') // 字符串,将,变成'';
let p = parseFloat(s) // 解析一个字符串,并返回一个浮点数
let n = isNaN(p) ? 1 : p
let formatNu