判断整数

pengcar 2003-09-19 12:00:39
标准库函数里有没有判断一个数是否为整数的函数?
...全文
641 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cupidvenus 2003-09-19
  • 打赏
  • 举报
回复
要写成宏的话也应为:
#define CHECK(x) ((x) - (int)(x) == 0 ? 1 : 0)
syuui 2003-09-19
  • 打赏
  • 举报
回复
#define CHECK(x) (x-(int)x==0?1:0)
njSeeWhy 2003-09-19
  • 打赏
  • 举报
回复
STL中有一个,是叫isnum还是isalpha()什么的,你去查查MSDN的帮助文档看看
playboyxp 2003-09-19
  • 打赏
  • 举报
回复
不清楚,但可以自己写一个
#include <stdio.h>
main()
{
float a;
scanf("%f",&a);
if(a-(int)a==0) printf("%f is an integer\n", a);
else printf("%f is not an integer\n",a);
}
ying8868 2003-09-19
  • 打赏
  • 举报
回复
对于float和double类型的数据,不能判断其是否是整型,如果要对其判断的话,应该说成它的小数部分小于某个特定的值(如.0000000000001)。
就象xdspower() 所说,
syuui 2003-09-19
  • 打赏
  • 举报
回复
要写成宏的话也应为:
#define CHECK(x) ((x) - (int)(x) == 0 ? 1 : 0)
cupidvenus(小鱼儿) is right .
sdtea 2003-09-19
  • 打赏
  • 举报
回复
isalpha是判断一个字符是不是数字的,不是判断整数的
xdspower 2003-09-19
  • 打赏
  • 举报
回复
怎么会有这样的要求?你是想对浮点数处理吧,
#define CHECK(x) ((x) - (int)(x) == 0 ? 1 : 0)这样的定义是无效的,你只能用
#define CHECK(x) ((x) - (int)(x) <0.00000001 ? 1 : 0)这样才有效
而且要注意对于x<0,(int)x是不大于x的整数,这样(int)(-0.01)=-1了。
hcj2002 2003-09-19
  • 打赏
  • 举报
回复
没有问题,但输出printf("%f is an integer\n", a);时显示的a是一个浮点数。
Wolf0403 2003-09-19
  • 打赏
  • 举报
回复
inline bool Check_Integer(double x){ return x == int(x); }
#define CHECK(x) (((x) == (int)(x)))

如果是整数则返回 true/1 。

69,380

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧