求个算法,如何判断浮点数是否是整数

blackdrong 2007-08-13 11:13:43
如题,比如4.0是整数,而4.2是小数
小弟先谢了~~
...全文
3499 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
LostKingGK 2007-08-15
  • 打赏
  • 举报
回复
整这么复杂干什么?如果不是考算法而是实用的话,直接使用C语言的库函数modf就可以了,而且又能保证可移植性
<math.h>
double modf(double x,double * ip)
把x分成整数和小数两部分,两部分正负与x相同,函数返回小数部分,整数部分保存在*ip中
vo_ov 2007-08-15
  • 打赏
  • 举报
回复
以上非浮点运算涉及计算机存储标准,比如IEEE754标准,假若该程序在非PC机下运行,或者机器标准不同,移植的话就会有问题。
那么,可有更好的方式??既然用C写,我们就要保证程序的通用性,跨平台问题。
再请高手出来正解。。。。。。
laowang2 2007-08-15
  • 打赏
  • 举报
回复
mark
kaicaitaiyang 2007-08-15
  • 打赏
  • 举报
回复
喜欢comman_ndsc 给出的,写起来简单。哈
snake1234 2007-08-14
  • 打赏
  • 举报
回复
楼上的是正解```楼主还不给分啊```
justicesun 2007-08-14
  • 打赏
  • 举报
回复
楼上正解...不过 if z==0 少了对括号

if(z==0)
Diago2007 2007-08-14
  • 打赏
  • 举报
回复
liangbch的方法好
jxlczjp77 2007-08-14
  • 打赏
  • 举报
回复
写错了
void pot()
{
int x;
float y,z;
scanf("%f",&y);
x=y;
z=y-x;
if (z>-Error&& z<Error)
printf("整数");
else
printf("小数");
}
jxlczjp77 2007-08-14
  • 打赏
  • 举报
回复
判断浮点数是否等于零不能直接用==吧

const int Error= 0.00000001
void pot()
{
int x;
float y,z;
scanf("%f",&y);
x=y;
z=y-x;
if (z>Error&& z<Error)
printf("整数");
else
printf("小数");
}
cangwu_lee 2007-08-14
  • 打赏
  • 举报
回复
总结,就是转成整数。然后和原数比较,看是否=0。
xlbdan 2007-08-14
  • 打赏
  • 举报
回复
是啊,你还可以说我没把代码放在一个函数里,:P
www_adintr_com 2007-08-14
  • 打赏
  • 举报
回复
上面的显然不准确,浮点数的范围比整数大得多,当浮点数的值大于整数最大值时,比如 1e12, 上面的判断就是错的了。
xlbdan 2007-08-14
  • 打赏
  • 举报
回复
float x;
scanf("%f",&x);
if((x-(int)x)==0)
printf("x is an int");
else
printf("x is not an int");
0黄瓜0 2007-08-14
  • 打赏
  • 举报
回复
if(z==0)//因为浮点数的不精确性,这里不能直接用==比较.
comman_ndsc 2007-08-14
  • 打赏
  • 举报
回复
学习一下 宝宝的方法
comman_ndsc 2007-08-14
  • 打赏
  • 举报
回复
你这个楼主对自己还是比较负责啊!
blackdrong 2007-08-14
  • 打赏
  • 举报
回复
分给过了,前面四个各给10,宝宝给20,嘿嘿,谢谢各位了
blackdrong 2007-08-14
  • 打赏
  • 举报
回复
刚看过了,总体感觉jxlczjp77(),yajia2000(),comman_ndsc,jeansmy111() 算法可行,总体是一个思路,如果是小浮点运算的话可行,liangbch(宝宝) 的算法不错,虽然看的不是很懂,但我知道这在计算机组成里面讲过这个内容,效率最高,yjukh(小虫) 的算法有点缺陷,如果不只是一个小数位,就比较不了,是吧,
blackdrong 2007-08-14
  • 打赏
  • 举报
回复
知道,知道,我正在看呢。,,,刚下班回家
comman_ndsc 2007-08-14
  • 打赏
  • 举报
回复
问题解决了,楼主不要忘了揭贴
加载更多回复(7)

69,373

社区成员

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

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