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

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

相关推荐
lead520lyq3 分钟前
Golang GPRC流式传输案例
服务器·开发语言·golang
xyq20244 分钟前
《C 经典100例》
开发语言
小宇的天下5 分钟前
Synopsys® Technology File(工艺文件)详解
前端
不染尘.5 分钟前
二分算法(优化)
开发语言·c++·算法
只是懒得想了6 分钟前
Go语言ORM深度解析:GORM、XORM与entgo实战对比及最佳实践
开发语言·数据库·后端·golang
点点开心6 分钟前
攻防世界WEB(新手模式)2-5-web2
前端·学习·安全·web安全·网络安全
西门吹-禅6 分钟前
react native --Expo---Android 开发
javascript·react native·react.js
不吃橘子的橘猫6 分钟前
Verilog HDL基础(概念+模块)
开发语言·学习·算法·fpga开发·verilog
谢尔登7 分钟前
React19 渲染流程
前端·javascript·架构·ecmascript
我是伪码农7 分钟前
Vue 1.29
前端·javascript·vue.js