0.1 + 0.2 为什么不等于 0.3?

简介: 0.1 + 0.2 为什么不等于 0.3?

正文


0.10.2 在转换成二进制后会无限循环,由于标准位数的限制后面多余的位数会被截掉,此时就已经出现了精度的损失,相加后因浮点数小数位的限制而截断的二进制数字在转换为十进制就会变成 0.30000000000000004


众所周知,JavaScript 仅有 Number 这个数值类型,而 Number 采用的是 IEEE 754 64 位双精度浮点数编码。


也就是说,不仅是 JavaScript 会产生这种问题,只要是采用 IEEE 754 Floating-point 的浮点数编码方式来表示浮点数时,则会产生这类问题。


References


目录
相关文章
|
6月前
|
算法 前端开发
最大公因数等于 K 的子数组数目
最大公因数等于 K 的子数组数目
51 0
输入一个整数,判断大于0小于0还是等于0
输入一个整数,判断大于0小于0还是等于0
让用户输入x的值,如果x的值如果小于1,y=x,x如果大于等于1并且小于10,y=2x。。。 // x x < 1 // y={ 2X 1<=x
让用户输入x的值,如果x的值如果小于1,y=x,x如果大于等于1并且小于10,y=2x。。。 // x x < 1 // y={ 2X 1<=x
|
6月前
|
存储 前端开发 JavaScript
为什么0.1 + 0.2 不等于 0.3 ?
这篇编程技术文章探讨了为什么在多种编程语言中,0.1 + 0.2 不等于 0.3 的现象。问题源于计算机使用二进制浮点数表示小数,而二进制无法精确表示某些十进制分数,如 0.1 和 0.2。这导致它们在计算机内部被近似表示,从而在相加时产生微小误差。文章通过示例和图片解释了二进制浮点数的表示原理,并提供了将小数转换为整数再相加以及使用 `toFixed()` 方法或 decimal.js 库等解决精度问题的方法。
|
Go
怎样判断一个数是否为偶数
怎样判断一个数是否为偶数
99 0
|
6月前
|
Python
计算小于或等于n的非负整数区间包含的1的数量
计算小于或等于n的非负整数区间包含的1的数量
60 0
|
C++
37 C++ - 等于和不等于(==、!=)运算符重载
37 C++ - 等于和不等于(==、!=)运算符重载
55 0
小于等于K的最大子数组累加和
小于等于K的最大子数组累加和
|
算法
判断一个数是否能被3或5整除
判断一个数是否能被3或5整除
161 0
|
Python
判断一个数能否同时被4和5整除
判断一个数能否同时被4和5整除
83 0