如何判断C语言的一个浮点数是不是整数?
1个回答
展开全部
用%g 格式把 float, double 转字符串,检查字符串里有没有小数点,有就不是,无就是整数。
例如:
double y=23.000;
int i,L,flag;
sprintf(str,"%g",y);
L = strlen(str);
flag = 0;
for (i=0;i<L;i++) {if (str[i]=='.') flag=1;break;}
if (flag == 0) printf("yes int !\n"); else printf("not int !\n");
==========
近似数用 你设定的误差许可,或 #include <float.h> #include <math.h> 用 里面的
FLT_EPSILON,DBL_EPSILON 极小误差判断
if ( fabs(x - (int) x) <= FLT_EPSILON) printf("yes int !\n");
如果 数值太大, (int) x 超出范围,这个方法就不行了。
例如:
double y=23.000;
int i,L,flag;
sprintf(str,"%g",y);
L = strlen(str);
flag = 0;
for (i=0;i<L;i++) {if (str[i]=='.') flag=1;break;}
if (flag == 0) printf("yes int !\n"); else printf("not int !\n");
==========
近似数用 你设定的误差许可,或 #include <float.h> #include <math.h> 用 里面的
FLT_EPSILON,DBL_EPSILON 极小误差判断
if ( fabs(x - (int) x) <= FLT_EPSILON) printf("yes int !\n");
如果 数值太大, (int) x 超出范围,这个方法就不行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询