JavaScript中为何0.1加0.2等于0.3的悖论如此常见?

2026-04-02 08:580阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计638个文字,预计阅读时间需要3分钟。

JavaScript中为何0.1加0.2等于0.3的悖论如此常见?

面试题:为什么 0.1 + 0.2 !=0.3?如何解决这个问题?原因,因为 JavaScript 使用 IEEE 754 双精度版本(64位),并且仅使用 IEEE 754 的语言都有这个问题。我们都知道计算机是通过二进制来存储东西的。

JavaScript中为何0.1加0.2等于0.3的悖论如此常见?

涉及面试题:为什么 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分钟。

JavaScript中为何0.1加0.2等于0.3的悖论如此常见?

面试题:为什么 0.1 + 0.2 !=0.3?如何解决这个问题?原因,因为 JavaScript 使用 IEEE 754 双精度版本(64位),并且仅使用 IEEE 754 的语言都有这个问题。我们都知道计算机是通过二进制来存储东西的。

JavaScript中为何0.1加0.2等于0.3的悖论如此常见?

涉及面试题:为什么 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采用的浮点数标准却会裁剪掉我们的数字。

阅读全文