前端 JS 经典:小数运算不精确

**原因:**计算机对小数的存储是二进制的,有限位数的二进制做算法得到的是有限位数,无限位数的二进制做运算,得到的是无限位数。

如下:0.5 和 0.25 转二进制是有限位数,0.3 和 0.2 转二进制是无限位数。

javascript 复制代码
(0.5).toString(2); // 0.1

(0.25).toString(2); // 0.01

0.5 - 0.25; // 0.1 - 0.01 = 0.01



(0.3).toString(2); // '0.010011001100110011001100110011001100110011001100110011'

(0.2).toString(2); // '0.001100110011001100110011001100110011001100110011001101'

0.3 - 0.2; // 0.00891089108910891

**解决:**转字符串,然后不同位置做算法。

相关推荐
方安乐2 分钟前
react笔记之useCallback/useEffect闭包陷阱
前端·笔记·react.js
沐墨染3 分钟前
黑词分析前端组件设计:双面板交互与黑词进度监控
前端
toooooop83 分钟前
php BC MATH扩展函数巧妙进行财务金额四舍五入
开发语言·php
运维行者_7 分钟前
用Applications Manager监控HAProxy:保障负载均衡高效稳定
运维·开发语言·前端·数据库·tcp/ip·负载均衡·服务器监控
wy3136228218 分钟前
C#——报错:System.Net.Sockets.SocketException (10049): 在其上下文中,该请求的地址无效。
开发语言·c#·.net
遨游xyz9 分钟前
策略模式笔记
开发语言·word·bash
a11177610 分钟前
拼图小游戏(HTML5、CSS3、JavaScript)
javascript·css3·html5
东东5162 小时前
基于ssm的网上房屋中介管理系统vue
前端·javascript·vue.js
harrain3 小时前
什么!vue3.4开始,v-model不能用在prop上
前端·javascript·vue.js
阿蒙Amon8 小时前
TypeScript学习-第7章:泛型(Generic)
javascript·学习·typescript