【WD】0.1 + 0.2 为什么不等于 0.3

活动线报侠 程序猿

时间: 2023-07-12 阅读: 1 字数:1014

{}
使用JavaScript解释。[玫瑰] 计算机内部存储...

目录

使用JavaScript解释。[玫瑰] 计算机内部存储数据使用2进制存储,两个数字进行的数学运算,首先是将这两个数字以2进制形式,存储在计算机内部,然后在计算机内部使用两个2进制数字进行计算,最后将计算结果的2进制数字转为10进制展示出来。 由于10进制的小数在转2进制的时候,规则是小数部分乘以2,判断是否得到一个整数,如果得到整数,转换完成;如 果没有得到整数,则继续乘以2判断。所以,0.1和0.2在转换2进制的时候,其实是一个无限死循环,也就是一直乘以2没有得到整数的时候,但计算机内部对于无线死循环的数据,会根据一个标准保留52位。也就是说,计算机内部在存储0.1和0.2的时候,本来就不精准,两个不精准的小数在计算后,距离精准的结果是有一定误差的。 项目中碰到这种情况,有3种处理方法: 将小数乘以10的倍数,转为整数,然后计算,计算完成后,再缩小10的倍数,例如: 使用数字的toFixed方法,强制保留小数点后多少位,例: 自定义数字运算方法,当需要进行数学运算的时候,不直接进行,调用自定义的方法进行,例: (加法封装) [玫瑰][玫瑰][玫瑰] (需要一定编程基础,有疑问,可以随时问,虽然是菜鸟还是能解决一些简单的) ![描述](http://cdn.u1.huluxia.com/g4/M02/B6/54/rBAAdmSuMT-Ad2CMAAFwPbFHo7w002.png) ![描述](http://cdn.u1.huluxia.com/g4/M02/B6/54/rBAAdmSuMT-AUYt0AADn4S8MKA0410.jpg) ![描述](http://cdn.u1.huluxia.com/g4/M02/B6/54/rBAAdmSuMUCAaE-_AAFMpb4PWv0447.png) ![描述](http://cdn.u1.huluxia.com/g4/M02/B6/54/rBAAdmSuMUCAI291AAFJwnQfoLc010.png) ![描述](http://cdn.u1.huluxia.com/g4/M03/B6/54/rBAAdmSuMXuAIdxbAAGI426b2Fs833.png) ![描述](http://cdn.u1.huluxia.com/g4/M03/B6/54/rBAAdmSuMXqAH_SiAAI9X6y2VpE429.png)
本文章网址:https://www.sjxi.cn/detil/52681713

打赏作者

本站为非盈利网站,如果您喜欢这篇文章,欢迎支持我们继续运营!

最新评论
当前未登陆哦
登陆后才可评论哦

湘ICP备2021009447号

×

(穷逼博主)在线接单

QQ: 1164453243

邮箱: abcdsjx@126.com

前端项目代做
前后端分离
Python 爬虫脚本
Java 后台开发
各种脚本编写
服务器搭建
个人博客搭建
Web 应用开发
Chrome 插件编写
Bug 修复