realmin“返回IEEE双精度的最小正规格化浮点数”。eps(X)“是从ABS(X)到与X精度相同的下一个更大的浮点数的正距离”。
如果我正确地解释了上面的文档,那么realmin --可以表示的最小正数--必须小于eps (0)。但是:
>> realmin; % 2.2251e-308
>> eps(0); % 4.9407e-324显然,甚至更小的eps(0)也可以表示。有人能给我解释一下吗?
发布于 2013-04-04 17:04:34
这是一个浮点问题。你应该去看看denormal numbers上的资料。
简而言之,realmin返回最小的正规格化浮点数。但也有可能有比这个小的非正规化数字,并且仍然可以用浮点表示,这是eps(0)返回的。
快速解释非正规数
二进制浮点数如下所示:
1.abcdef * 2^M其中abcdefg分别是0或1,M是-1022 <= M <= 1023范围内的数字。这些被称为归一化浮点数。可能的最小规范化浮点数是1 * 2^(-1022)。
非正规化的数字如下所示
0.abcdef * 2^(-1022)因此,它们可以采用小于最小可能规范化浮点数的值。非规格化数在-realmin和realmin之间线性插值。
发布于 2013-04-04 16:54:07
也许这是一个定义问题,这就是我在eps文档中看到的:
For all X of class double such that abs(X) <= realmin, eps(X) = 2^(-1074)https://stackoverflow.com/questions/15806537
复制相似问题