Python:最小的非规范化双错误
使用WinPython 3.4.4.2,我得到了以下奇怪的结果:Python:最小的非规范化双错误,python,double,denormalized,Python,Double,Denormalized,使用WinPython 3.4.4.2,我得到了以下奇怪的结果: >>> 2**-1075 5e-324 也就是说,与2**-1074相同,而2**-1075在双浮点表示中应为零。使用Python3.5.1作为地址,我得到了预期的0 有谁能帮我了解出了什么问题吗 谢谢大于或小于零的最小可重新表示的非规范化浮点是:5e-324和-5e-324 5e-324是非规范化最小值,可通过将最小浮点数(2.2250738585072014e-308)乘以浮点数ε(2.2204460492
>>> 2**-1075
5e-324
也就是说,与2**-1074
相同,而2**-1075
在双浮点表示中应为零。使用Python3.5.1作为地址,我得到了预期的0
有谁能帮我了解出了什么问题吗
谢谢大于或小于零的最小可重新表示的非规范化浮点是:5e-324和-5e-324 5e-324是非规范化最小值,可通过将最小浮点数(2.2250738585072014e-308)乘以浮点数ε(2.220446049250313e-16)来实现 输出:
5e-324
我在shell(Python 3.5.1)中也得到了相同的结果。该地址使用控制台,可以从控制台控制其系统中的此类操作。2**-1074是最小的低于正常的浮点值。2**-1075应该是0.0,但在Windows上,由于C pow()函数的行为,它不是。有趣的是,2**-1074/2将给出0.0。ldexp(1,-1075)也将给出0.0。我无法复制您在linux上的Python 3.4.3(默认值,2015年10月14日,20:28:29)[GCC 4.8.4]的结果,有关详细信息,请键入“帮助”、“版权”、“信用”或“许可证”。>>2**-1075 0.0>>>您是否做过任何可能会影响浮点舍入模式的事情?如果您尝试更低的指数,会发生什么?我什么都没做,只是安装了WinPython并立即进行了这样的测试。对于较低的指数,我选择正确的0.0:只有这一个给出了错误的答案!这不能回答我的问题。
5e-324