一个货物网站商品的价格是float,(例如12.09) 当用户在购买多个商品时,这个时候怎么做计算啊? 浮点数,貌似是会丢失精度,有什么方法可以实现准确的计算?
可以将整数和小数拆开计算。举一个加法计算的小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));
只是百分位的话,精度还没有丢失吧。这我倒是没了解过。
你要是实在怕精度丢失,那就小数点两边分开计算。
var value = 12.09;
value.toString().split('.');
这样不知道能看懂吗
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
https://www.jianshu.com/p/4f6...