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

时间:2019-04-27 18:08:11

标签: python python-2.7

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

对此有什么解释?

为什么正负指数值不同?

1 个答案:

答案 0 :(得分:5)

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

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

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

IEEE-754 Floating Point Converter中有一个演示

对于Python,可以在Python教程的“浮点算术:Issues and Limitations"”页中找到详细说明。