js 浮点数丢失

一个货物网站商品的价格是float,(例如12.09) 当用户在购买多个商品时,这个时候怎么做计算啊? 浮点数,貌似是会丢失精度,有什么方法可以实现准确的计算?

繁花不似锦
浏览 563回答 4
4回答

牛魔王的故事

可以将整数和小数拆开计算。举一个加法计算的小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('.');这样不知道能看懂吗

慕标5832272

可以试着理解为,前端显示为(元),代码和数据处理用(分),这样运行时则不会有浮点问题,显示的价格只是一个把整数转成除100的2位小数字符串。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript