在Python中,为什么最低(最小)浮点值的有效位数与最大数字不同?

Dal*_*ley 3 python python-2.7

我刚刚在《傻瓜机器学习》一书中读到,浮点变量的最小非零值为,2.2250738585082014x10^-308最大值为1.7976931348623157x10^308

这有什么解释?

为什么正负指数的值不一样?

Lau*_*RTE 5

所有浮点数(double是双精度浮点数)都写为尾数和指数这两个值的乘积。

浮点数指数的存储方式使用8位(用于浮点数)或11位(用于双精度点),这意味着您将获得-127到+128(浮点)或-1023到+1024(双精度)的指数值。

2 ^ 1024的值为1.797693134862315907729305190789 * 10 ^ 308,这是双精度浮点数的最大指数。

IEEE-754浮点转换器中进行演示

对于Python,可以在Python教程的“浮点算术:问题和局限性”页面中找到详细说明。

  • 如果您想检查自己的最小/最大个数,`sys.float_info`将为您提供。 (2认同)