JavaScript中为何0.1加0.2等于0.3的悖论如此常见?
- 内容介绍
- 文章标签
- 相关推荐
本文共计638个文字,预计阅读时间需要3分钟。
面试题:为什么 0.1 + 0.2 !=0.3?如何解决这个问题?原因,因为 JavaScript 使用 IEEE 754 双精度版本(64位),并且仅使用 IEEE 754 的语言都有这个问题。我们都知道计算机是通过二进制来存储东西的。
涉及面试题:为什么 0.1 + 0.2 != 0.3?如何解决这个问题?
原因,因为 JS 采用 IEEE 754双精度版本(64位),并且只要采用 IEEE 754的语言都有该问题
我们都知道计算机是通过二进制来存储东西的,那么 0.1 在二进制中会表示为
// (0011) 表示循环 0.1 = 2^-4 * 1.10011(0011)
我们可以发现,0.1 在二进制中是无限循环的一些数字,其实不只是 0.1,其实很多十进制小数用二进制表示都是无限循环的。这样其实没什么问题,但是 JS采用的浮点数标准却会裁剪掉我们的数字。
本文共计638个文字,预计阅读时间需要3分钟。
面试题:为什么 0.1 + 0.2 !=0.3?如何解决这个问题?原因,因为 JavaScript 使用 IEEE 754 双精度版本(64位),并且仅使用 IEEE 754 的语言都有这个问题。我们都知道计算机是通过二进制来存储东西的。
涉及面试题:为什么 0.1 + 0.2 != 0.3?如何解决这个问题?
原因,因为 JS 采用 IEEE 754双精度版本(64位),并且只要采用 IEEE 754的语言都有该问题
我们都知道计算机是通过二进制来存储东西的,那么 0.1 在二进制中会表示为
// (0011) 表示循环 0.1 = 2^-4 * 1.10011(0011)
我们可以发现,0.1 在二进制中是无限循环的一些数字,其实不只是 0.1,其实很多十进制小数用二进制表示都是无限循环的。这样其实没什么问题,但是 JS采用的浮点数标准却会裁剪掉我们的数字。

