数字金额大写转换

来源:互联网 发布:淘宝上的摩托车能买吗 编辑:程序博客网 时间:2024/04/30 13:14

数字金额大写转换(可以处理整数,小数,负数)

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(/^整$/, '零元整');      }; 
1 0
原创粉丝点击