Skip to main content
 首页 » 编程设计

python之在数学计算中看不到Python的近似值

2025年05月04日10lidabo

问题:我用Python在数学计算中看到计算机什么时候做近似

问题示例:

我的老老师曾经说过下面的话

You cannot never calculate 200! with your computer.  

现在我不完全确定这是否属实。 似乎是这样,因为我从 Python script 中得到了很多零.

如何查看 Python 代码何时进行了近似?

请您参考如下方法:

Python 使用arbitrary-precision arithmetic用整数来计算,所以它可以精确地计算出 200!。对于实数(所谓的 floating-point ),Python 不使用精确表示。它使用称为 IEEE 754 的二进制表示,本质上是科学记数法,除了以 2 为基数而不是以 10 为基数。

因此,任何不能以 53 位精度以 2 为基数精确表示的实数,Python 都无法产生精确的结果。比如0.1(以10为底)是一个以2为底的无限小数,0.0001100110011...,所以不能精确表示。因此,如果您在 Python 提示符下输入:

>>> 0.1 
0.10000000000000001 

你得到的结果是不同的,因为已经从十进制转换为二进制(53位精度),回到十进制。结果,你得到这样的东西:

>>> 0.1 + 0.2 == 0.3 
False 

要获得良好(但较长)的阅读,请参阅 What Every Programmer Should Know About Floating-Point Arithmetic .