怎么用c语言判断一个数是否为整数(这个数是开平方出来的)?

2024年11月29日 04:39
有3个网友回答
网友(1):

因为实型和整型变量是不能直接比较的,要做一步类型转换才能比较首先要明确允许的误差是多少。比如一般情况误差的绝对值小于10-8时我们可以认为两个实数是相等的。

代码如下

#include 

#include 

main()

{

float b,c;

c=1;

while(c>=0)      //如果输入小于0,就结束程序

{

scanf("%f",&c);

b=sqrt(c);

if (fabs(b-(int)b)<1e-8) printf("%.0f的开平方是个整数\n",c);

elseprintf("%.0f的开平方不是整数\n",c);

}

}

结果

网友(2):

如果这个数是n,一般如是if(n==(int)n) printf("It is a integer.\n"); else printf("It is not a integer.\n");判断就可以了。但这不100%准确,因为同一个整数用int表达和用double表达实际上是有差别的,所以当浮点数与整型数相差非常非常小时可能会误判。

网友(3):

if(fabs(x-(int)(x+0.5))<1e-5)printf("%d是一个整数",(int)(x+0.5));
这里把它与相应整数的差小于0.00001,就视为它就是一个整数。