返回什么sys.float_info.epsilon
?
在我的系统上,我得到:
>>> sys.float_info.epsilon
2.220446049250313e-16
>>> sys.float_info.epsilon / 2
1.1102230246251565e-16
>>> 0 < sys.float_info.epsilon / 2 < sys.float_info.epsilon
True
这怎么可能?
编辑:
你没关系,我认为 epsilon 做了 min 所做的事情。所以我的意思是sys.float_info.min
。
编辑2
每个人,尤其是 John Kugelman,感谢您的回答!
我做了一些玩耍来向自己澄清一些事情:
>>> float.hex(sys.float_info.epsilon)
'0x1.0000000000000p-52'
>>> float.hex(sys.float_info.min)
'0x1.0000000000000p-1022'
>>> float.hex(1 + a)
'0x1.0000000000001p+0'
>>> float.fromhex('0x0.0000000000001p+0') == sys.float_info.epsilon
True
>>> float.hex(sys.float_info.epsilon * sys.float_info.min)
'0x0.0000000000001p-1022'
所以epsilon * min
给出具有最小正有效数(或尾数)和最小指数的数字。