使用WinPython 3.4.4.2,我得到了以下奇怪的结果:
>>> 2**-1075
5e-324
也就是说,与
2**-1074
相同,而在双浮点表示中2**-1075
应该为零。使用位于https://www.python.org/shell/地址的Python 3.5.1,我得到了预期的0。有谁能帮我弄明白怎么回事吗?
谢谢你
最佳答案
最小的可重新呈现的非规范化浮点数大于或小于零的是:5e-324和-5e-324。
5e-324是非规范化最小值,可以通过将最小浮点数(2.2250738585072014e-308)与浮点epsilon(2.220446049250313e-16)相乘来实现。
import sys
print(sys.float_info.min*sys.float_info.epsilon)
输出:
5e-324
我在shell(Python 3.5.1)中也得到了相同的结果。地址https://www.python.org/shell/使用http://www.pythonanywhere.com/中的控制台,该控制台可以在其系统中控制此类操作。