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

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

相关推荐
牛肉在哪里7 小时前
ros2 从零开始28 监听广播C++
开发语言·c++·算法·机器人
techdashen7 小时前
Cargo 1.94 开发周期全解析
开发语言·后端·rust
charlie1145141917 小时前
现代C++特性指南——constexpr 构造函数与字面类型
开发语言·c++
北城以北88887 小时前
虚拟机安装JDK,Tomcat,部署项目
java·开发语言·tomcat
江华森7 小时前
Python 3 实战教程:从零基础到项目实战
开发语言·python
Wonderful U7 小时前
Python+Django实战|在线音乐分享平台:音乐上传、歌手专辑管理、在线播放、自定义歌单、收藏点赞、评论互动
开发语言·python·django
云水一下7 小时前
Vue.js从零到精通系列(三):组件化基础——Props、Emits、插槽与生命周期
前端·javascript·vue.js
小糯米6018 小时前
JavaScript表达式与运算符
开发语言·javascript·ecmascript
北极星日淘8 小时前
煤炉自动代拍功能开发 | Python 异步任务实现批量下单
开发语言·python·自动化
SEO_juper8 小时前
新独立站冷启动收录全攻略:配置、推送、抓取配额优化完整手册
前端·谷歌·seo·跨境电商·外贸·geo·独立站