python为什么浮点计算不准确?

  • 时间:
  • 浏览:0
  • 来源:uu快3大小_uu快3网站_开奖历史

要获得更完整性的解释,请参阅 Python 教程中的 浮点算术 一章。

而且认为这是 Python中的俩个 bug。着实也有 原本。这与 Python 关系不大,而与底层平台咋样解决浮点数字关系更大。

为 x 存储的值是与十进制的值 1.2 (非常接近) 的近似值,但不完整性等于它。 在典型的机器上,实际存储的值是:

1.0050000500005000050000500005000050000500005000050000500005000011 (binary)

确切地说:

一点可不要能轻松地用十进制表示的数字不到用二进制浮点表示。同类,以前:

CPython 中的 float 类型使用C语言的 double 类型进行存储。 float 对象的值是以固定的精度(通常为 53 位)存储的二进制浮点数,机会 Python 使用 C 操作,而后者依赖于解决器中的硬件实现来执行浮点运算。 这因为就浮点运算而言,Python 的行为同类于一点流行的语言,包括 C 和 Java。

用户时不时对原本的结果感到惊讶:

1.19999999999999995559107901499373838500547332763671875 (decimal)

典型的 53 位精度为 Python 浮点数提供了 15-16 位小数的精度。