测试 float

关于blog上对 float的许多讨论,这个函数不对,那个运算出错。

其实原因不在这里,根源是计算机没有向你保证你看到的就是真实的,都是一厢情愿而已。

废话不说。下面是测试,一看就明白。再不明白的看看 float 是如何储存的。

#include <stdio.h>

int main(void)
{
	double b = 0.3;
	float    a = 0.3f;

	printf("%.20g
",a);
	printf("%.20g
",b);

	b = a;
	printf("%.20g
",b);

	if (0.3 == a) printf("0.3 == 0.3f
");
	if (0.3f == a) printf("0.3f == 0.3f
");
	return 0;
}

 别跟我提编译器,编你妹。

为何 %lf , %f 输出是 0.3 ? 我就不说,看看 cXX 标准什么的吧。

原文地址:https://www.cnblogs.com/playerc/p/3358654.html