| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9523 人关注过本帖
标题:C语言如何判断某浮点数小数点后的数字是否都为0?
只看楼主 加入收藏
cyxcpyzc
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2013-11-26
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
C语言如何判断某浮点数小数点后的数字是否都为0?
C语言如何判断某浮点数小数点后的数字是否都为0?
88.000000 精确到小数点后6位数。
谢谢!


[ 本帖最后由 cyxcpyzc 于 2013-12-1 08:18 编辑 ]
搜索更多相关主题的帖子: 小数点 C语言 如何 
2013-12-01 08:12
好男儿!
Rank: 2
来 自:陕西省
等 级:论坛游民
帖 子:29
专家分:52
注 册:2013-7-26
收藏
得分:2 
double a;

if((int)a == a)
    足以保证小数点后面全是0
用int进行强制类型转换,如果后边有小数,int会有截断误差的,比如 (int)45.6789 = 45,  所以只要(int)a - a == 0,则说明小数点后面全是0

[ 本帖最后由 好男儿! 于 2013-12-1 09:18 编辑 ]
2013-12-01 09:16
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:2 
有个笨点的方法,乘以1000000,再用%取到各个位的数,加以判断

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-12-01 09:51
℃Buffer
Rank: 2
等 级:论坛游民
帖 子:25
专家分:48
注 册:2013-2-26
收藏
得分:2 
2楼那个已经很不错了
可以精确点的办法是
f-(int)f>0.000001||f-(int)f<-0.000001
2013-12-01 12:11
cyxcpyzc
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2013-11-26
收藏
得分:0 
谢谢楼上老师解答!
我试了一个,感觉不稳定。
#include <stdio.h>
#include <math.h>
main()
{
    double a,b,t;
    printf("请输入两个浮点数\n");
    scanf("%lf,%lf",&a,&b);
    t=a/b;
    printf("a=%lf\n",a);
    printf("b=%lf\n",b);
    printf("计算结果=%lf\n",t);
    int h;
    h=(int)t;
    printf("h=%d\n",h);
    if (t-h==0)
       printf("整除\n");
    else
       printf("不整除\n");
}
运行结果
请输入两个浮点数
99.1,0.1
a=99.100000
b=0.100000
计算结果=991.000000
h=990
不整除
Press any key to continue
991.000000转成整型后是h=990 出错
有得数字倒可以。

2013-12-01 15:42
好男儿!
Rank: 2
来 自:陕西省
等 级:论坛游民
帖 子:29
专家分:52
注 册:2013-7-26
收藏
得分:0 
额,你用的什么编译系统?你在主函数程序里中间定义变量是不允许的啊。
2013-12-01 17:47
ch_815
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2013-3-19
收藏
得分:2 
浮点型不能和整形直接比较吧

新手发言,说错勿怪!
2013-12-01 17:56
星璇凌
Rank: 2
等 级:论坛游民
帖 子:15
专家分:33
注 册:2012-6-19
收藏
得分:2 
不准确是因为double的小数位是用近似值表示,二进制运算时转换成int后小数位被舍弃了。
2013-12-01 21:07
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:2 
modf
看其返回值是否为0


[此贴子已经被作者于2017-6-28 16:09编辑过]

2013-12-02 12:11
快速回复:C语言如何判断某浮点数小数点后的数字是否都为0?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014875 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved