需求:
后端传过来的数据是带千分位且保留两位小数的金额,要在前端做加法运算,并仍以千分位且保留两位小数的形式展示。
一、两个字符串相加
var a = '12,345.67';
var b = '76,543.21';
var c = a + b ;
console.log(c);
结果是字符串拼接:12,345.6776,543.21
二、字符串转数字后相加
var a = '12,345.67';
var b = '76,543.21';
var c = Number(Number(a.replace(/,/g, "")).toFixed(2)*1 +
Number(b.replace(/,/g,"")).toFixed(2)*1);
console.log(c);
结果为和:88888.88
//分析
var a = '12,345.67';
var b = '76,543.21';
var c = Number(
Number(a.replace(/,/g, "")) //这里先将字符串中的逗号去掉
.toFixed(2)*1 //转为保留两位小数的Number类型
+
Number(b.replace(/,/g,""))
.toFixed(2)*1 //如果不*1,相加后还是字符串拼接
); //最后还要对结果进行Number转换
console.log(c);
三、数字转为千分位的字符串表示
var d = '88888.88';
var result =d.replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g,'$1,');
console.log(result);
结果为:88,888.88