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

如何在python3中使用非常小的浮点数(例如8.5e-350),python,python-3.x,types,precision,Python,Python 3.x,Types,Precision,Python 2中是否有像long这样的类型可以处理非常小的数字,比如8.5e-350? 或者在这种情况下有没有办法,因为python会将320位小数后的浮点数限制为0?python使用IEEE 745,所以您不会得到350位小数,您会得到大约15位有效数字,指数限制为+/-350。如果有效数字的数量合适,并且您不需要更多的动态范围(即,您的所有值都很小),请以不同的单位表示您的数量,以便您的值处于合适的范围内。标准库随附 十进制模块支持快速正确舍入十进制 浮点运算。与浮动相比,它有几个优点 数

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

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

标准库随附

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

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


您可以使用第三方库,如.Python不使用:ieee格式只是出于好奇,为什么要操作这么小的值?这比普朗克的长度要小,我想不出任何一个应用程序,在那里操纵这么小的东西是有意义的。
>>> from decimal import *
>>> getcontext().prec = 500
>>> Decimal(10) / Decimal(3)
Decimal('3.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333')
>>> len('3.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333')
501