又是项目遇到的问题,在网上找了几个后,发现或多或少都有些问题,最终反复实践后感觉这套代码还不错,另外在其基础上,又加了一个钱币符号的功能,此外如果传入空值,则直接返回“-”。
/*
* 方法: 转换金额
* 使用场景: 所有金额方面
* 使用方法: parseFormatNum(8888888,'¥');
* 参数: mark: 如果传了mark, 则返回对应的钱币符号: ¥8,888,888
*/
function parseFormatNum(num,mark){
if( typeof(num) == 'undefined' || num == null || num == '' ){
return '-';
}
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));
}
if( typeof(mark) != 'undefined' ){
return mark + (((sign)?'':'-') + num + '.' + cents);
}else{
return (((sign)?'':'-') + num + '.' + cents);
}
}
评论
暂无评论