最近做了银行类项目,数字精确到了两位小数,常见的一个需求是求和(显示的数字有,分割符),但是在网上查了一些方法,计算结果不够精确,找了好久,现发现一个,数字计算的准确,前提条件:a 、b都是数字类型 :
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);
//分析
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转换
如果a、b 是文本类型,则用下列方法:
var a = ‘12,345.67’;
var b = ‘76,543.21’;
var c=parseFloat(a)+parseFloat(b);
parseFloat和Number尽量不要混着用