强制单精度?

我有一个简单的程序来计算单机精度(ε)。根据C语言,浮点精度为1.2e-8,但是我得到的是双精度2.2e-16。我不知道还要如何强制单精度?

void main(void)
{
    float eps = 1.0f;
    while( eps + 1.0f != 1.0f )
		eps /= 2.0f;	
     eps *= 2.0f;
     printf("Epsilon is %g \n", eps);

}