js 中处理金额数据 四舍五入数据(,处理和保留小数处理)

来源:互联网 发布:杀马特火星文 知乎 编辑:程序博客网 时间:2024/06/05 06:43
//方法名:任意大于等于0的数—num   例:11111.11   返回为:**,***.**形式数据   11,111.11 等
function toThousandsbuliu(num) {
 // 判断是0 直接返回0.00
 if(num == null){
  return '0.00';
 }
//任意数字保留两位小数
 var aa = Number(num).toFixed(2);
    //
    var num = (aa || 0).toString(), re = /\d{3}$/, result = ''; 
    while ( re.test(num) ) { 
        result = RegExp.lastMatch + result; 
        if (num !== RegExp.lastMatch) { 
            result = ',' + result; 
            num = RegExp.leftContext; 
        } else { 
            num = ''; 
            break; 
        } 
    } 
    if (num) { result = num + result; } 
   
    var sss = formatNumbuliu(result);

    return sss; 
}
// 上边方法中嵌套的一个方法
function formatNumbuliu(str){
           var newStr = "";
           var count = 0;
           
           if(str.indexOf(".")==-1){
              for(var i=str.length-1;i>=0;i--){
            if(count % 3 == 0 && count != 0){
              newStr = str.charAt(i) + "," + newStr;
            }else{
              newStr = str.charAt(i) + newStr;
            }
            count++;
              }
              str = newStr + ".00"; //自动补小数点后两位
              return str
           }
           else
           {
              for(var i = str.indexOf(".")-1;i>=0;i--){
            if(count % 3 == 0 && count != 0){
              newStr = str.charAt(i) + "," + newStr;
            }else{
              newStr = str.charAt(i) + newStr; //逐个字符相接起来
            }
            count++;
              }
              str = newStr + (str + "00").substr((str + "00").indexOf("."),3);
              return str
            }
}
原创粉丝点击