基于float和double的简单比较

在下面这个程序 , 从13开始数字开始偏移,不是很准确。 

#include <stdio.h>
int main()
{ 
	float Sn=0;
	int k;
	long long r=1;
	
	scanf("%d",&k);
	
	while(Sn<=k)
	{
		Sn = (1/(1.0*r)+Sn);
		r++;
	}
	r--;
	printf("%lld",r);
	
	return 0;
}

对于下面这个程序来说,double保持了结果的精确性。

#include <stdio.h>
int main()
{ 
	double Sn=0;
	int k;
	long long r=1;
	
	scanf("%d",&k);
	
	while(Sn<=k)
	{
		Sn = (1/(1.0*r)+Sn);
		r++;
	}
	r--;
	printf("%lld",r);
	
	return 0;
}

float来说,传输速度比较慢,但是精度很是优秀,超过10次的需要精度的运算,必须要使用double(必须在保险的方面)。 flaot 来说低于10次可以使用来着。  

猜你喜欢

转载自blog.csdn.net/jh__chen/article/details/81125583
今日推荐