首页 > 技术文章 > js金额格式化

shizilunya 2018-10-10 17:11 原文

// 将数字转换成金额显示
function toMoney(val) {
  var str = (val/100*100).toFixed(2) + '';  //从别的地方抄的代码没有*100,结果金额小数点左移了两位,导致10000变100唉
  var intSum = str.substring(0,str.indexOf(".")).replace( /\B(?=(?:\d{3})+$)/g, ',' );//取到整数部分
  var dot = str.substring(str.length,str.indexOf("."))//取到小数部分搜索
  var ret = intSum + dot;
  return ret;
}

====其他方法

最开始使用了

function toMoney(num) {
  num = num.toFixed(2);
  num = parseFloat(num);
  num = num.toLocaleString();
  return num;// 返回的是字符串23,245.12保留2位小数,但是无法补全第一位0,会显示.00。
}

第二次改成

function toMoney(num) {
  num = parseFloat(num);
  num = num.toFixed(2);
  num = num.toLocaleString();
  return num;// 返回的是字符串23245.12保留2位小数,可以补全第一位0,会显示0.00,但是千分位符不显示了。
}

 

推荐阅读