猿记录

一个记录、分享的博客

您的位置:主页 > 技术专栏 > node >

js 金额格式化

2017-11-17 18:04:31 作者:yxl 次阅读 node

function outputmoney(number) {  
    if (isNaN(number) || number == "") return "";  
    number = Math.round(number * 100) / 100;  
    if (number < 0)  
        return '-' + outputdollars(Math.floor(Math.abs(number) - 0) + '') + outputcents(Math.abs(number) - 0);  
    else  
        return outputdollars(Math.floor(number - 0) + '') + outputcents(number - 0);  
}  
//格式化金额   
function outputdollars(number) {  
    if (number.length <= 3)  
        return (number == '' ? '0' : number);  
    else {  
        var mod = number.length % 3;  
        var output = (mod == 0 ? '' : (number.substring(0, mod)));  
        for (i = 0; i < Math.floor(number.length / 3); i++) {  
            if ((mod == 0) && (i == 0))  
                output += number.substring(mod + 3 * i, mod + 3 * i + 3);  
            else  
                output += ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);  
        }  
        return (output);  
    }  
}  
  
  
function outputcents(amount) {  
    amount = Math.round(((amount) - Math.floor(amount)) * 100);  
    return (amount < 10 ? '.0' + amount : '.' + amount);  
}  
 
使用:outputmoney("12313123000");
 
 
2.例如: 
12345格式化为12,345.00 
12345.6格式化为12,345.60 
12345.67格式化为 12,345.67 
只留两位小数
[html] view plain copy
function fmoney(s, n)  
{  
   n = n > 0 && n <= 20 ? n : 2;  
   s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";  
   var l = s.split(".")[0].split("").reverse(),  
   r = s.split(".")[1];  
   t = "";  
   for(i = 0; i < l.length; i ++ )  
   {  
      t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");  
   }  
   return t.split("").reverse().join("") + "." + r;  
}  
调用:fmoney("12345.675910", 3),返回12,345.676 
 
3 最简单
[html] view plain copy
var s = '12345237987584564656,000.00';  
var d=s.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,")  
  
alert(d)  
 

凡本站注明“本站”或“投稿”的所有文章,版权均属于本站或投稿人,未经本站授权不得转载、摘编或利用其它方式使用上述作品。

编辑:yxl 关键词:
0

网友评论