如何在Python中将精度提高数百位小数

问题描述 投票:0回答:1

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

python precision
1个回答
4
投票

两种选择:

  1. 使用对数表示法。因此,您不是直接存储

    x
    ,而是存储
    log10(x)
    。所以在这种情况下,您将存储
    -678
    。这使得乘法成为一种选择,但加法变得不可能。

  2. 使用

    decimal.Decimal
    ,并将精度设置为所需的水平。

>>> from decimal import Decimal, getcontext
>>> getcontext().prec = 10000
>>> Decimal(10)**-678
Decimal('1E-678')
© www.soinside.com 2019 - 2024. All rights reserved.