数字,金额格式

来源:互联网 发布:留学国家排名知乎 编辑:程序博客网 时间:2024/05/14 08:01
!!!!!!!!!!!!!!!!!!!!!!!!!!!数字格式化为金额格式!!!!!!!!!!!!!!!!!!!!
例如: 
12345格式化为12,345.00 
12345.6格式化为12,345.60 
12345.67格式化为 12,345.67 
只留两位小数

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 




js处理数字保留2位小数,强制保留2位小数不够补上.00
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
<script type="text/javascript" src="js/jq.js"></script>
</head>
<script type="text/javascript">  
    //保留两位小数   
    //功能:将浮点数四舍五入,取小数点后2位  
    function toDecimal(x) {  
        var f = parseFloat(x);  
        if (isNaN(f)) {  
            return;  
        }  
        f = Math.round(x*100)/100;  
        return f;  
    }  


    //制保留2位小数,如:2,会在2后面补上00.即2.00  
    function toDecimal2(x) {  
        var f = parseFloat(x);  
        if (isNaN(f)) {  
            return false;  
        }  
        var f = Math.round(x*100)/100;  
        var s = f.toString();  
        var rs = s.indexOf('.');  
        if (rs < 0) {  
            rs = s.length;  
            s += '.';  
        }  
        while (s.length <= rs + 2) {  
            s += '0';  
        }  
        return s;  
    }  
      
    function fomatFloat(src,pos){     
         return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);     
    }  
    
    document.write("四舍五入  <br/>")
    document.write("3.14159267保留2位小数:" + toDecimal(3.14159267)+"<br/>");  
    document.write("3.14159267强制保留2位小数:" + toDecimal2(3.14159267)+"<br/>");  
    document.write("3.14159267保留2位小数:" + toDecimal(3.14559267)+"<br/>");  
    document.write("3.14159267强制保留2位小数:" + toDecimal2(3.15159267)+"<br/>");  
    document.write("3.14159267保留2位小数:" + fomatFloat(3.14559267, 2)+"<br/>");  
    document.write("3.14159267保留1位小数:" + fomatFloat(3.15159267, 1)+"<br/>");  
      
    document.write("五舍六入  <br/>")
    document.write("1000.003保留2位小数:" + 1000.003.toFixed(2)+"<br/>");  
    document.write("1000.08保留1位小数:" + 1000.08.toFixed(1)+"<br/>");  
    document.write("1000.04保留1位小数:" + 1000.04.toFixed(1)+"<br/>");  
    document.write("1000.05保留1位小数:" + 1000.05.toFixed(1)+"<br/>");  
      
    document.write("科学计数  <br/>")
    document.write(3.1415+"科学技术后:"+3.1415.toExponential(2)+"<br/>");  
    document.write(3.1455+"科学技术后:"+3.1455.toExponential(2)+"<br/>");  
    document.write(3.1445+"科学技术后:"+3.1445.toExponential(2)+"<br/>");  
    document.write(3.1465+"科学技术后:"+3.1465.toExponential(2)+"<br/>");  
    document.write(3.1665+"科学技术后:"+3.1665.toExponential(1)+"<br/>");  
    document.write("精确到n位,不含n位  <br/>")
    document.write("3.1415精确到小数点第2位" + 3.1415.toPrecision(2)+"<br/>");  
    document.write("3.1455精确到小数点第3位" + 3.1465.toPrecision(3)+"<br/>");  
    document.write("3.1445精确到小数点第2位" + 3.1415.toPrecision(2)+"<br/>");  
    document.write("3.1465精确到小数点第2位" + 3.1455.toPrecision(2)+"<br/>");  
    document.write("3.166592679287精确到小数点第5位" + 3.141592679287.toPrecision(5)+"<br/>");  
</script>  
<body>
<input type="text" id="Score" />
</body>
</html>



js数字金额大写转换
<script>
    /** 数字金额大写转换(可以处理整数,小数,负数) */  
    var digitUppercase = function(n) {
        var fraction = ['角', '分'];
        var digit = [
            '零', '壹', '贰', '叁', '肆',
            '伍', '陆', '柒', '捌', '玖'
        ];
        var unit = [
            ['元', '万', '亿'],
            ['', '拾', '佰', '仟']        ];
        var head = n < 0 ? '欠' : '';
        n = Math.abs(n);
        var s = '';
        for (var i = 0; i < fraction.length; i++) {
            s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
        }
        s = s || '整';
        n = Math.floor(n);
        for (var i = 0; i < unit[0].length && n > 0; i++) {
            var p = '';
            for (var j = 0; j < unit[1].length && n > 0; j++) {
                p = digit[n % 10] + unit[1][j] + p;
                n = Math.floor(n / 10);
            }
            s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
        }
        return head + s.replace(/(零.)*零元/, '元')
            .replace(/(零.)+/g, '零')
            .replace(/^整$/, '零元整');
    };

    console.log(digitUppercase(12.3));
</script>



js 填写银行卡号时,每4个数字用空格隔开
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Document</title>
    <script src="js/jQuery.js"></script>
</head>
<body>
    <script>
    var num = 0;
    function inputAccount(){
      
      var str = $('#bankCard').val();
      
      var elem = document.getElementById("bankCard");
      
      console.log(elem);
      
      if(str.length > num){
          var c = str.replace(/\s/g,  ""); 
          
          if(str != "" && c.length > 4 && c.length % 4 == 1){
            $('#bankCard').val(str.substring(0, str.length - 1)+ " " + str.substring(str.length - 1, str.length));
              
          }
      }
      
      if(elem.setSelectionRange){//W3C
            setTimeout(function(){
                elem.setSelectionRange(elem.value.length,elem.value.length);
                elem.focus();
            },0);
        }else if(elem.createTextRange){//IE
            var textRange=elem.createTextRange();
            textRange.moveStart("character",elem.value.length);
            textRange.moveEnd("character",0);
            textRange.select();
        }
      
      num = str.length;
      
  }

    </script>


    <input type="text" name="" oninput="inputAccount()" id="bankCard" />
</body>
</html>
0 0