-
在做项目的时候,有一个计算金额的,结果发现计算的金额总是缺失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
相关推荐
shaibdoio几秒前
RPA自动化获客怎么落地?瞬维AI评论区工程实践计算机魔术师4 分钟前
807亿亏配900%留存:ANT招股书把AI的拧巴摊在桌上了未来之窗软件服务15 分钟前
web网络请求竞态问题与取消方案-东方仙盟wshzd34 分钟前
LLM之Agent(120)|DeepSeek-Harness(二十七)Workflow 引擎与 Ralph 循环涛涛ing1 小时前
React Compiler 1.0 之后,状态管理库正在被重新定义乘风gg1 小时前
出事了,AI 提效后,老板让我裁员20%Amos_Web1 小时前
Rspack 源码解析(三十二):rspack_plugin_runtime 如何抽象 chunk 加载与启动Amos_Web1 小时前
通过 Rspack 源码学 Rust(二):所有权、借用与 `&mut`计算机魔术师1 小时前
AI公司把「灾难性风险」写进招股书?Anthropic这5处反常西凉的悲伤1 小时前
Jsoup 库 HTML 解析详解