js将数字格式化为千分位金额格式
js实现格式化千分位金额数值
在前端开发中经常会遇到这样一种需求,使用Javascript格式化数字进行输出。最常见的是金额,比如人民币最小表示单位为分,一般需要精确到小数点后两位数字,而且整数位每隔三位数字需要用逗号隔开。
首先我们看看最简单的实现方法,需要达到这样的目的。
输入一串数字或者字符串,最后返回格式化后的字符串,每隔3位用逗号分隔,通过四舍五入保留小数点后2两位。
我们来分析下方法的实现过程。
- 替换掉原本传入数据中可能出现的'$'和',',然后判断是否为数字。
- 判断是否为数字。
- 判断传入的数字是正数还是负数。
- 判断小数位数的舍入性。
- 每隔三位,添加一个逗号。
- 重新拼接字符串,正负号+整数位+小数点+小数位
/**
* 将数值四舍五入(保留2位小数)后格式化成金额形式
*
* @param num 数值(Number或者String)
* @return 金额格式的字符串,如'1,234,567.45'
* @type String
*/
function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num + '.' + cents);
}
示例:
console.log(formatCurrency('-123456700'))
console.log(formatCurrency('123456700.25'))
console.log(formatCurrency(-123456700))
结果
版权声明
本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。
评论