#include <stdio.h>
#include <float.h>
int main()
{
printf("%f\n", FLT_MAX);
}
GNU输出的结果:
340282346638528859811704183484516925440.000000
来自Visual Studio的输出:
340282346638528860000000000000000000000.000000
C和C++标准允许两种结果吗?还是它们强制执行特定的结果?
请注意,FLT_MAX = 2^128-2^104 = 340282346638528859811704183484516925440
。