当前位置: 首页 > 面试题库 >

有人可以解释一下:0.2 + 0.1 = 0.30000000000000004吗?

贺季
2023-03-14
问题内容

为什么在Python解释器中会发生以下情况?

>>> 0.1+0.1+0.1-0.3
5.551115123125783e-17
>>> 0.1+0.1
0.2
>>> 0.2+0.1
0.30000000000000004
>>> 0.3-0.3
0.0
>>> 0.2+0.1
0.30000000000000004
>>>

为什么不0.2 + 0.1 = 0.3呢?


问题答案:

那是因为.1不能以二进制浮点表示形式精确表示。如果你试试

>>> .1

Python会做出响应,.1因为它只能打印出一定的精度,但是已经存在一个小的舍入错误。也会发生同样的情况.3,但是当您发出

>>> .2 + .1
0.30000000000000004

然后四舍五入误差.2.1累积。另请注意:

>>> .2 + .1 == .3
False


 类似资料:
  • 本文向大家介绍0.1 + 0.2、0.1 + 0.3和0.1 * 0.2分别等于多少?并解释下为什么?相关面试题,主要包含被问及0.1 + 0.2、0.1 + 0.3和0.1 * 0.2分别等于多少?并解释下为什么?时的应答技巧和注意事项,需要的朋友参考一下 JS中采用的IEEE 754的双精度标准,计算机内部存储数据的编码的时候,导致精度变化。不是所有浮点数都有舍入误差。二进制能精确地表示位数有

  • 问题内容: 抱歉,这是一个非常广泛的问题。 以下代码是网络上某些内容的片段。我感兴趣的关键是从@protected开始的行- 我想知道这是做什么的以及它是如何做到的?在执行do_upload_ajax函数之前,似乎正在检查是否已登录有效用户。这似乎是进行用户身份验证的一种非常有效的方法。我不了解此@函数的机制- 有人可以引导我正确的方向来解释如何在现实世界中实现它吗?Python 3请回答。谢谢。

  • 问题内容: 我只是在android上开始,而我的java很生锈。我不记得曾经见过像这样嵌套在另一个函数中的函数。有人可以向我确切解释final的作用,并解释为什么您要在另一个函数中嵌套这样的功能吗? 问题答案: 这是一个匿名类。实际发生的情况是正在使用重写的函数创建 的子类。 关于匿名类的最优雅的事情之一是,它们使您可以在需要的地方准确定义单发类。此外,匿名类具有简洁的语法,可减少代码中的混乱情况

  • 问题内容: 需要使用一对多和多对一关系。这是我对象中的双向关系,因此我可以从任一方向来回移动。是推荐的解决方法,但是,我听不懂。有人可以解释: 推荐的使用方式是什么? 它解决什么目的? 就我的示例而言,这是带有注释的类: 拥有许多 许多 属于一个 A 航空公司: 航空公司航班: 编辑: 数据库模式: AirlineFlights具有idAirline作为ForeignKey,而Airline没有i

  • 问题内容: 我目前正在学习node.js,但我只是好奇这意味着什么,所以我正在学习,您能否告诉我为什么这段代码可以做到: 我知道它会将您添加到命令行的数字相加,但是为什么“ i”以2开头?我了解for循环,因此您不必对此进行详细介绍。 提前非常感谢您。 问题答案: 您可以用解决此问题。 它从2开始,因为它包含整个命令行调用: 元素和不是您所谓的“参数”,但它们确实存在。

  • 我是Hibernate和JPA的新手,我对这个注释有问题。有人能简单地解释一下这个注释到底在做什么吗?因为在这种情况下,文档对我来说很难理解。 编辑我明白什么是持久上下文,但在代码中,我有这样的例子: 我对@PerustenceContext做什么有问题。抱歉,也许我没有具体说明。