我想知道 32 位浮点数可以容纳的最大正数,同时仍然能够表示大约 1/1000 的十进制分辨率。
因此,例如,如果浮点数代表千瓦,那么在我失去将其转换为瓦的能力而不会显着损失精度(比如说几瓦)之前,千瓦数可以达到多大。
我假设您希望两个连续 Float 之间的距离小于 1/1000。
这与Float的最小精度单位(ulp)有关。
在二进制格式中,浮点具有一般形式
1.fractionBits * 2^exponent
如果浮点数的精度为p,
现在的要求是
ulp < 1/1000
。那就是2^(exp+1-p) < 1/1000
。
如果我们放宽一点要求,
ulp <= 1/1024
,那就是2^10:
exp+1-p <= 10
所以浮点指数一定是
exp < 9 + p
对于 IEEE 754