在项目中计算价格的时候,会很心累,因为jquery的浮点型不精确
有时候遇到测评输入的价格为0.01然后几百的一起结算,我们的总金额后面就会带很多个小数点,
不仅页面错位了,而且我没还得找原因(有可能是给某个变量少写了parseFloat或者parseInt)
就引起了上面的问题,但是如果使用parseFloat或者parseInt的话,我们不仅需要写好久,还需要自己测试好多种可能
有时候自己没测试出来的,到测评那边,加几个0.01的商品,分分钟给你测出来
我以前写的是这样的:
all_money += parseFloat((parseFloat(price)*parseFloat(num1)).toFixed(2));
这样写有时候还是不能精确
现在有个乘法运算
function numMulti(num1, num2) { var baseNum = 0; try { baseNum += num1.toString().split(".")[1].length; } catch (e) { } try { baseNum += num2.toString().split(".")[1].length; } catch (e) { } return Number(num1.toString().replace(".", "")) * Number(num2.toString().replace(".", "")) / Math.pow(10, baseNum); }; all.text(numMulti(price, num1));//调用上面的函数
现在调用这个乘法函数,就不用我们在测试了,完美的解决了小数点的问题
现在还有一个四舍五入的方法一并发出来
//四舍五入 function decimal(num,v){ var vv = Math.pow(10,v); return Math.round(num*vv)/vv; }
这样就可以完美的解决小数点的问题了
转载时请注明出处及相应链接,本文永久地址:http://blog.it985.com/22570.html
微信打赏
支付宝打赏
感谢您对作者Niki的打赏,我们会更加努力! 如果您想成为作者,请点我
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。