<p>在标准库中,<a href="http://docs.python.org/library/decimal.html#module-decimal" rel="noreferrer">^{<cd1>}</a>模块可能是您要查找的。另外,我发现<a href="http://mpmath.org/" rel="noreferrer">mpmath</a>非常有用。<a href="http://mpmath.org/doc/current/basics.html" rel="noreferrer">documentation</a>也有许多很好的示例(不幸的是,我的办公计算机没有安装<code>mpmath</code>;否则我将验证几个示例并发布它们)。</p>
<p>不过,有一条关于<a href="http://docs.python.org/library/decimal.html#decimal-objects" rel="noreferrer">^{<cd1>}</a>模块的警告。该模块包含几个用于简单数学运算的内置函数(例如<code>sqrt</code>),但这些函数的结果可能并不总是与<code>math</code>或其他精度较高的模块中的相应函数匹配(尽管它们可能更精确)。例如</p>
<pre><code>from decimal import *
import math
getcontext().prec = 30
num = Decimal(1) / Decimal(7)
print(" math.sqrt: {0}".format(Decimal(math.sqrt(num))))
print("decimal.sqrt: {0}".format(num.sqrt()))
</code></pre>
<p>在Python3.2.3中,这将输出前两行</p>
<pre><code> math.sqrt: 0.37796447300922719758631274089566431939601898193359375
decimal.sqrt: 0.377964473009227227214516536234
actual value: 0.3779644730092272272145165362341800608157513118689214
</code></pre>
<p>如前所述,这并不是你所期望的那样,你可以看到精度越高,匹配的结果就越少。注意,<code>decimal</code>模块在本例中确实具有更高的准确性,因为它与<a href="http://www.wolframalpha.com/input/?i=sqrt%281%2F7%29" rel="noreferrer">actual value</a>更接近。</p>