#include <math.h>
#include <stdio.h>

void dispf(float f)
{
	char		str[32];
	char*		pc;
	unsigned char*	pf;
	int		i, b;

	pf = (unsigned char*)&f;
	pc = str;
	for (i = 0; i < 4; i++) {
		for (b = 0; b < 8; b++) {
			*pc++ = '0'+((pf[3-i]>>(7-b))&1);
		}
	}
	printf("%.1s %.8s %.23s\n", str, str + 1, str + 9);
	printf("%E\n", f);
	printf("%f\n", f);
}

int main()
{
	char	s[32];
	float	a, b, c;

	printf("a = 1970.199707\n");
	a = (float)1970.199707;
	dispf(a);
	sprintf(s, "%E", a);
	printf("b = %s\n", s);
	sscanf(s, "%E", &b);
	dispf(b);
	printf("c = fabsf(a - b)\n");
	c = fabsf(a - b);
	dispf(c);
	printf("%s\n", (c<=0.001)?"true":"false");
	return 0;
}
