-
在做项目的时候,有一个计算金额的,结果发现计算的金额总是缺失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
相关推荐
用户27050777252436 分钟前
MCP 最小 Server 实测:3 个 JSON-RPC 报错与修法用户4993350250739 分钟前
一人VIP账号多人共用:Web 代理里的会话共享怎么实现用户老李40 分钟前
无线电自学教程 05:第一台收音机——从矿石机到 SDRIPIPD1 小时前
Node.js请求遇到503怎么重试?先解析Retry-After,再做有上限退避葡萄城技术团队1 小时前
dsh-spreadjs-editor 的集成链路:把 SpreadJS Designer 嵌进 Agent 工作台FlyWIHTSKY2 小时前
vue2和vue3有什么区别,用法上有哪些区别码云之上2 小时前
10 颗一模一样的「Edit」:中后台 Web Agent 怎么找到对的那一行量化分析码农2 小时前
【Python量化多因子实战 04】因子暴露不是 alpha:市值与行业中性化实战不可能片场3 小时前
Electron 发布 正文写入的三条通道与读回口径程序员大阳3 小时前
副队长JavaScript教程(66)-本地存储实战:待办事项网页的开发