首页 > 解决方案 > 如何在 python3 中使用非常小的浮点数(例如 8.5e-350)

问题描述

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

标签: pythonpython-3.xtypesprecision

解决方案


标准库自带十进制模块

十进制模块提供对快速正确舍入的十进制浮点运算的支持。它提供了优于浮点数据类型的几个优点。

...

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

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

快速入门教程


推荐阅读