一个货物网站商品的价格是float,(例如12.09) 当用户在购买多个商品时,这个时候怎么做计算啊? 浮点数,貌似是会丢失精度,有什么方法可以实现准确的计算?
4 回答
牛魔王的故事
TA贡献1830条经验 获得超3个赞
可以将整数和小数拆开计算。举一个加法计算的小demo。
Number.prototype.add=function(arg){
let number1=this.valueOf();
let number2=arg;
let len1=number1.toString().split('.')[1].length;
let len2=arg.toString().split('.')[1].length;
let len=Math.max(len1,len2);
return (number1*Math.pow(10,len)+number2*Math.pow(10,len))/Math.pow(10,len);
}
console.log(Number(0.1).add(0.2));
江户川乱折腾
TA贡献1851条经验 获得超5个赞
只是百分位的话,精度还没有丢失吧。这我倒是没了解过。
你要是实在怕精度丢失,那就小数点两边分开计算。
var value = 12.09;
value.toString().split('.');
这样不知道能看懂吗
添加回答
举报
0/150
提交
取消