如何在 python3 中使用非常小的浮点数(例如 8.5e-350)



Python 2 中是否有像 long 这样的类型可以处理像 8.5e-350 这样的非常小的数字? 或者在这种情况下有什么办法,因为 python 压制在小数点后 320 位浮点数到 0?

标准库附带十进制模块

十进制模块支持快速正确舍入的小数 浮点运算。与浮子相比,它具有几个优点 数据类型。

与基于硬件的二进制浮点不同,十进制模块具有用户可更改的精度(默认为 28 位(,可以是 根据给定问题的需要而增大:

>>> from decimal import *
>>> getcontext().prec = 500
>>> Decimal(10) / Decimal(3)
Decimal('3.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333')
>>> len('3.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333')
501

快速入门教程

Python 使用 IEEE 745,因此您不会获得 350 位小数,您会得到大约 15 个有效数字,并且指数限制为 +/-350。 如果有效数字的数量没问题,并且您不需要更多的动态范围(即所有值都很小(,请以不同的单位表示数量,以便您的值在合适的范围内。

相关内容

最新更新