C语言 求详细的过程,计算单精度和双精度正负最大值和最小值的取值范围?有些小了一个一,有些又多了一

2025-03-14 00:15:22
推荐回答(1个)
回答1:

这是求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;
}