请问js如何保证数字计算的正确?
我又两个文本框 可以填支付比例与支付金额,两个都可以填,并且改了其中一个,另外一个也会有相应变化。现在我做如下处理:
1、现将支付金额改为58.5 ,那个支付比例会变为:40.63 (都只保留两位小数) 保存一次
那么还剩下支付比例:59.38 ; 支付金额58.50.
2、我将支付比例还是输入59.38,支付比例会变为58.51.因为用了四舍五入。 我是这样算的:
支付比例 / 100 * 总金额
59.38 / 100 * 144 = 85.5072
四舍五入后成了 85.51 加上上一次的58.5 结果比总金额大了。
我又想不用四舍五入了用向下取整,但是又怕有别的问题。
请问我该怎么做?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
export function currency(val) {
return (Math.round(Number(val) * 100) / 100).toFixed(2) || '0.00';
}
如果四舍五入取整肯定会导致误差,不要四舍五入,显示数据的时候保留两位小数,保存数据的变量保持最精确的状态。
监听变化让后端去算金额返回
多留几位小数, 然后转成整数,偏差可能会小点