首页 > 解决方案 > 如何在 Python 中将精度提高数百位小数

问题描述

我需要在非常低的温度下计算本征载流子浓度,它采用非常小的值(低至 10 -678),由 Python 四舍五入为 0。你建议我做什么来提高精度?

标签: pythonpython-3.xprecision

解决方案


两种选择:

  1. 以对数符号工作。因此,与其x直接存储,不如存储log10(x). 因此,在这种情况下,您将存储-678. 这使乘法成为一种选择,但加法变得不可能。

  2. 使用decimal.Decimal,并将精度设置为所需的级别。

>>> from decimal import Decimal, getcontext
>>> getcontext().prec = 10000
>>> Decimal(10)**-678
Decimal('1E-678')

推荐阅读