前端 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

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

相关推荐
衡石科技8 分钟前
一个门户只保留一个智能助理:衡石嵌入式 Data Agent 的运行与渲染边界
前端·javascript·html·data agent
kimnoic9 分钟前
Python中使用封装类还是函数以及它们的区别
开发语言·python
代码什么用9 分钟前
Java Web 21-22
java·开发语言·web
Hilaku10 分钟前
一个前端工程师除了写代码,还能靠什么赚钱?
前端·javascript·程序员
我先测了11 分钟前
Midscene.js 全栈学习指南:从入门到精通的 AI 视觉自动化框架
javascript·人工智能·自动化·agent·midscene
青柠之夏cc13 分钟前
Python Java PHP底层对比:内存并发性能全解析
开发语言·python·线程
程序员Sunday19 分钟前
JavaScript 闭包是什么?为什么变量没有被释放,什么时候会内存泄漏?
前端·javascript
JarvanMo19 分钟前
Flutter 终于有自己的 React Flow 了,vyuh_node_flow 上手实录
前端
半亩码田19 分钟前
C#转Python第5.1篇:异步编程:asyncio vs async/await,语法相似但机制不同
开发语言·python·c#
狂师24 分钟前
爆火!新一代e2e AI测试框架,单日狂揽1500 star
前端·人工智能·测试