-
在做项目的时候,有一个计算金额的,结果发现计算的金额总是缺失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
相关推荐
梦帮科技5 小时前
GRAVIS v4.0:基于Web的极速套利架构设计与实时数据流实现爱勇宝5 小时前
办公资料反复修改、补传、交接混乱,我做了个桌面工具来解决这件事微信开发api-视频号协议6 小时前
企业微信外部群开发自动化实践过程甲维斯6 小时前
Fable5:20美金的顶级设计师!kyriewen6 小时前
我同时用了 Claude Code、Cursor 和 Codex,说说三个工具的真实差距——2026 年选错工具比不用 AI 更浪费时间Jackson__7 小时前
为了拯救我的腰椎和颈椎,我做了款浏览器插件!闲猫7 小时前
Python FastAPI + SQLAlchemy 入门教程:从零搭建你的第一个 Web 应用林小帅7 小时前
NestJS v11 + Prisma v7 ESM 迁移配置解析IT_陈寒8 小时前
React的setState竟然不是立刻生效的,害我调试半天简简单单就是我_hehe8 小时前
前端埋点日志解决方案:完整 User-Agent 解析工具实现,爬虫识别、设备品牌、操作系统、浏览器版本全解析(附完整源码)