用于32位浮点ISO-C标准的机器Epsilon是: 1.19209e-07 max Float是: 3.40282e + 38
如何从浮动最大值?
导出机器epsilon我已使用此代码段获取值:
dboSubjects.Race + dbo.SUBJECTS.Sex AS RaceSex
答案 0 :(得分:1)
如何从浮动最大值?
导出机器epsilon
您可以通过观察最大有限浮点数来得出类似IEEE 754的二进制浮点系统的机器epsilon,最大有限浮点数为1.111
在这些条件下,机器epsilon是二进制的,0.000
然而,最大有限浮点数和机器epsilon实际上是不同的参数,它们捕获浮点系统的不同特征:可以用有限近似表示的值的范围,以及这些近似的精度。
编辑:根据OP的要求,进行骨干实施:#include <stdio.h>
#include <float.h>
int main(void) {
printf("%a\n", FLT_MAX);
printf("FLT_MAX is 0x1.fffffep+127 therefore machine epsilon must be:\n");
printf(" 0x0.000002p0 that is approx %e in decimal\n", 0x0.000002p0);
}
在我的平台上,我得到了结果:
0x1.fffffep+127 FLT_MAX is 0x1.fffffep+127 therefore machine epsilon must be: 0x0.000002p0 that is approx 1.192093e-07 in decimal
由于整个练习完全没有意义,因此FLT_MAX
的机器epsilon的实际计算留给了读者。