如何向非计算机人士说明,为何0.1加0.2不等于0.3在JavaScript中?

2026-05-29 05:240阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

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

如何向非计算机人士说明,为何0.1加0.2不等于0.3在JavaScript中?

在计算0.1+0.2与0.3比较时不等于,这看似简单的数学问题其实涉及浮点数精度问题。即便你不了解原理,也应听过这个问题,包括很多博主也曾在面试中被问到。令人遗憾的是,当时只知道精度丢失,但不知道是什么原因造成的精度丢失。

壹 ❀ 引

0.1+0.2不等于0.3,即便你不知道原理,但也应该听闻过这个问题,包括博主本人也曾在面试中被问到过此问题。很遗憾,当时只知道一句精度丢失,但是什么原因造成的精度丢失却不太清楚。而我在查阅资料的过程中发现,大部分文章都是假定了你有一定计算机基础,对于非此专业的人来说,可能文章读起来就显得晦涩难懂。那么本文就会站在此问题的角度,从二进制计算说起说起,用基础数学通俗易懂的去解释究竟是什么原因造成了计算机中浮点数计算的精度丢失,本文开始。

贰 ❀ 从二进制说起

与我们人的计算思维不同,计算运算采用二进制而非十进制,毕竟人可以用十根手指表示十个数字。而对于早期计算机而言,第一代电子管数字机(1946年)在硬件方面,逻辑元件采用的都是真空电子管,而使用电子管表示十种状态过于复杂,所以当时的电子计算机只有两种状态,即开和关,因此电子管的两种状态也奠定了计算机采用二进制来表示数字和数据。

阅读全文

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

如何向非计算机人士说明,为何0.1加0.2不等于0.3在JavaScript中?

在计算0.1+0.2与0.3比较时不等于,这看似简单的数学问题其实涉及浮点数精度问题。即便你不了解原理,也应听过这个问题,包括很多博主也曾在面试中被问到。令人遗憾的是,当时只知道精度丢失,但不知道是什么原因造成的精度丢失。

壹 ❀ 引

0.1+0.2不等于0.3,即便你不知道原理,但也应该听闻过这个问题,包括博主本人也曾在面试中被问到过此问题。很遗憾,当时只知道一句精度丢失,但是什么原因造成的精度丢失却不太清楚。而我在查阅资料的过程中发现,大部分文章都是假定了你有一定计算机基础,对于非此专业的人来说,可能文章读起来就显得晦涩难懂。那么本文就会站在此问题的角度,从二进制计算说起说起,用基础数学通俗易懂的去解释究竟是什么原因造成了计算机中浮点数计算的精度丢失,本文开始。

贰 ❀ 从二进制说起

与我们人的计算思维不同,计算运算采用二进制而非十进制,毕竟人可以用十根手指表示十个数字。而对于早期计算机而言,第一代电子管数字机(1946年)在硬件方面,逻辑元件采用的都是真空电子管,而使用电子管表示十种状态过于复杂,所以当时的电子计算机只有两种状态,即开和关,因此电子管的两种状态也奠定了计算机采用二进制来表示数字和数据。

阅读全文