龙空技术网

你思考过为什么JavaScript计算浮点数不准确吗?

Owen大前端时代 181

前言:

此刻朋友们对“js截取小数”大致比较关心,朋友们都想要学习一些“js截取小数”的相关内容。那么小编在网络上汇集了一些对于“js截取小数””的相关资讯,希望大家能喜欢,我们快快来学习一下吧!

作为一个前端开发者,相信每个人都知道JavaScript计算浮点数时可能会出现误差的情况。但是还想大家都没有去思考问题出现的原因,只是简单的处理掉误差,比如通过toFixed方法。今天小编就和大家分享一下JavaScript计算浮点数出现误差的原因。

我们先举一个例子说明JavaScript计算浮点数出现错误的情况:

计算0.1+0.2

错误出现的原因分析

主要思考角度是计算机处理时使用的是二进制,而非我们使用的十进制。JavaScript进行计算之前需要先把浮点数转化为二进制数,在转换的时候可能会出问题。

比如就0.1而言,转换为二进制后:0.0001 1001 1001 ... 无限循环。在我们日常计算中是可以理解无限小数的,但是计算机计算的时候不可能无限位数计算,JavaScript浮点数计算最多支持52位小数。针对52位小数截取然后计算,计算结果再转换为10进制小数,就得到了我们的结果。

因为这样的原因,误差就不可避免的存在。关于JavaScript浮点数计算误差的原因就和大家分享到这里,如果你觉得本篇文章对你有帮助,欢迎转发,评论。

标签: #js截取小数 #js判断是浮点数 #javascript浮点数