python - 如何在 Python 中将精度提高数百位小数
问题描述
我需要在非常低的温度下计算本征载流子浓度,它采用非常小的值(低至 10 -678),由 Python 四舍五入为 0。你建议我做什么来提高精度?
解决方案
两种选择:
以对数符号工作。因此,与其
x
直接存储,不如存储log10(x)
. 因此,在这种情况下,您将存储-678
. 这使乘法成为一种选择,但加法变得不可能。使用
decimal.Decimal
,并将精度设置为所需的级别。
>>> from decimal import Decimal, getcontext
>>> getcontext().prec = 10000
>>> Decimal(10)**-678
Decimal('1E-678')
推荐阅读
- ibm-cloud-infrastructure - 如何通过 API 更改最大 VSI 限制?
- excel - 根据另一个工作表中的数字填充三个 Excel 列
- python - Flask api 端点仅通过第一个参数
- r - R:低于可变分位数阈值的值的滚动平均值
- python - cv2.drawContours 没有显示正确的颜色
- excel - Excel VBA 循环语法
- android - Android SearchView 作为自动完成?
- visual-studio-code - 在 Visual Studio Code 中配置缩放灵敏度
- python - 如何使用 groupby 将 3 个元组列表转换为元组列表
- excel - 格式化包含今天日期的整行 - Mac 上的 Office 365(最新版本)