• 格式化数字


    1.第一种方案

    $("#addItems").on("keyup","[data-numbox=num]",function(){
      this.value=this.value.replace(/[^d.]/g,"");
    });
    $("#addItems").on("change","[data-numbox=num]",function(){
      var val = this.value,smalls="";
      //为保证value里没有其他符号这里可以再做一次replace
      if(val==""){
      return;
      }else{
        val=parseFloat(val.replace(/[^d.]/g,"")).toFixed(2);
    }

    var dpos = val.indexOf(".");
      if(dpos>=0){
        smalls = val.substring(dpos+1,val.length);
        var intNum = val.substring(0,dpos);
    }

    if(smalls){
      val = formatVal(intNum) +"."+ smalls;
    }else{
      val = formatVal(val);
    }
      this.value=val;
    });

    //每三个数字加“,”分隔
    function formatVal(val){
      var reg=/(d+)(d{3})/;
      while(reg.test(val)){
        val=val.replace(reg,"$1"+","+"$2");
    }
      return val;
    }

    2.第二种方案

    // 格式化金额
    function outputmoney(number) {

      number = number.replace(/¥|\,/g, "");
      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);
    }

  • 相关阅读:
    php 计算两个日期相差天数
    Linux系统查找清理磁盘大文件
    虚拟机重启网络服务失败,当查看状态显示错误Failed to start LSB......
    c++简单编写线性表(实验)
    学校的c++程序课程设计(简单的写法 并无太多c++的特色)
    C语言简单实现链栈基本几个功能
    简单用数组模拟顺序栈(c++)
    详细易懂的二叉树遍历(先中后)
    大数加法之C语言函数法(只有正数版)
    有关Java垃圾回收的几个问题
  • 原文地址:https://www.cnblogs.com/woodyliang/p/6397361.html
Copyright © 2020-2023  润新知