-
在做项目的时候,有一个计算金额的,结果发现计算的金额总是缺失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
相关推荐
风骏时光牛马1 小时前
生成一个移动端标题,只需要一个标题,不需要其他的任何文本。IT_陈寒2 小时前
Redis雪崩把我坑惨了,这是5年经验的教训SameX2 小时前
HarmonyOS ArkUI List 的侧滑删除 用 ListItem 的 swipeAction + endIcon 的做法usdoc文档预览4 小时前
USDOC系列之PPT文件在线编辑-VUE前端实现在线浏览器在线编辑PPT文档用户2705077725244 小时前
Agent 调工具卡住?3 种超时与取消策略实测对比LuHang5 小时前
我一行代码没写,把领导派的活做成了公司内部系统😭明月_清风5 小时前
Meta 开源了一个 AI Native 组件库:Astryx,150+ React 组件,专为 AI Agent 而设计用户850869276156 小时前
秒杀系统中 Shell 脚本并发控制 Bug:究竟哪里出了程序员大阳7 小时前
HTML+CSS+JS对话式实战(3)-活动管理页实现查询、新增、删除API后端接口炫酷的大高个8 小时前
6 亿播放的闪身步,我用前端算出 15 倍重心差