这是求float最大值的,最小值和double的求法类似:
#include
float acc(float src,float x);
int main()
{
int i;
float x = 17179169184.0,y = 1000,t;
for(i = 0;i < 10;i++)
{
t = acc(x,y); //计算步长为y的最大值
printf("x = %f,y = %f,i = %d\n",x,y,i); //显示
x = t;
y /= 10; //步长递减
}
system("pause");
return 0;
}
float acc(float x,float y)
{
float tmp;
while(1)
{
tmp = x;
x += y;
if((x - tmp) < 0.0000001) break; //到达最大值后数值无法再增加
}
return x;
}