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

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

相关推荐
摸鱼仙人~10 小时前
前端面试手写核心 Cheat Sheet(终极精简版)
前端
xyq202410 小时前
Python 日期和时间处理指南
开发语言
馬致远10 小时前
Win7 配置 Vue脚手架
javascript·vue.js·ecmascript
xyq202410 小时前
Bootstrap4 折叠组件详解
开发语言
Ashley_Amanda10 小时前
深入浅出Web Dynpro:SAP企业级Web应用开发全面解析
前端
方安乐10 小时前
概念:前端工程化实践
前端
星辰_mya10 小时前
CompletableFuture:异步编程的“智能机械臂”
java·开发语言·面试
阿蒙Amon10 小时前
C#常用类库-详解AutoMapper
开发语言·c#
一见10 小时前
WorkBuddy安装Skill的方法
android·java·javascript
沐知全栈开发10 小时前
C 头文件
开发语言