-
在做项目的时候,有一个计算金额的,结果发现计算的金额总是缺失0.01,发现相乘的时候,会失去精度,如图所示。被这整的吐血,由于计算逻辑由前端计算,所以传值后端总出错(尽量后端计算)。

还发现toFixed也会失去进度,简单来说原因:算法不一样,叫说"银行家算法",不是正常的四舍五入,(想要了解可以具体百度一下,此处记录下自己的问题与解决方法)如图所示。
一、取小数位是奇数,舍5入1;

二、取小数位为偶数,舍5不进

-
我的解决方法
toPrecision(value): 将数字格式化为特定的精度或长度
toFixed(value) :方法将字符串四舍五入为指定的小数位数
精度长度变大,后在四舍五入,向下取整;如图所示
一、四舍五入,向下取整取位小数

代码javascriptMath.round((13.345 * 100).toPrecision(12))/100 Math.floor((13.345 * 100).toPrecision(12))/100
js 小数相乘后,精度缺失问题,记录四舍五入,向下取整
窗外鸟不停2023-09-13 12:51
相关推荐
fei_sun5 小时前
黑洞路由(Null Route/空接口路由)大爱一家盟5 小时前
告别卡点BGM同质化 2026原创卡点音乐素材下载网站 TOP5 推荐彦为君5 小时前
算法思维与经典智力题aa小小6 小时前
localhost 访问异常排查笔记格子软件6 小时前
2026年GEO优化系统源码的分布式状态机深度拆解陈随易6 小时前
Rust、Golang、MoonBit 编译成 WASM,体积和速度差距有多大?IT_陈寒6 小时前
Python多线程的坑,我居然现在才踩到摇滚侠7 小时前
方法 A 等方法 B 执行完再执行 叫同步调用还是异步调用 JS 默认是同步调用还是异步调用触底反弹7 小时前
🔥 字符串算法面试三连击:反转、回文、回文变种,搞懂这三题稳了!触底反弹7 小时前
AI Tool Use 深度解析:大模型是如何"突破物理限制"调用外部工具的?