| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 262 人关注过本帖
标题:求解惑,关于浮点数
只看楼主 加入收藏
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
求解惑,关于浮点数
今天测试一段简单的代码
程序代码:
#include<stdio.h>
main()
{
    float a=0.000001,b,c;
    b=a/10000;
    printf("b=%f\n",b);
    c=b*10000;
    printf("c=%f\n",c);
    return 0;
}
发现一个问题,它的输出是b=0.000000      c=0.000001
我想不通的是b已经等于0.000000了,c乘以一万怎么能等于0.000001呢??
换成整型就不存在这种情况了
程序代码:
#include<stdio.h>
main()
{
    int a=1,b,c;
    b=a/10;
    c=b*10;
    printf("%d    %d",b,c);
    return 0;
}
输出是0    0
为什么出现这个现象?


求解惑
搜索更多相关主题的帖子: 测试 今天 color 
2012-11-21 16:58
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:3 
估计是int默认只保留整数部分  ,而float保留小数部分 ,其值并没有改变成0  只是不能表示出来吧
你那应该是没有完全显示出来吧。。。。

有心者,千方百计;无心者,千难万难。
2012-11-21 17:21
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:7 
回复 楼主 yaobao
b的值不是0.000000,只是没打印全,float默认小数点后面保留6位小数,可以用%1.10f打印看看,其实b的值是0.0000000001,c的值0.000001是对的
请看下面:
#include<stdio.h>
main()
{
    float a=0.000001,b,c;
    b=a/10000;
    printf("b=%1.10f\n",b);
    c=b*10000;
    printf("c=%1.10f\n",c);
    return 0;
}
结果如下:
b=0.0000000001
c=0.0000010000

小小战士,战士中的战斗机!
2012-11-21 17:30
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
小小的战士也是战士啊,果然厉害

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-21 18:09
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
谢谢,我想我应该将你的这句话“小小的战士也是战士”作为我的签名了!很不错!

[ 本帖最后由 小小战士 于 2012-11-21 18:27 编辑 ]

小小战士,战士中的战斗机!
2012-11-21 18:15
全局变量
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-20
收藏
得分:0 
%m.nf 指定输出的实数共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。
2012-11-21 18:37
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
以下是引用全局变量在2012-11-21 18:37:53的发言:

%m.nf 指定输出的实数共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。

%-m.nf 指定输出的实数共占m列,其中有n位小数。如果数值长度小于m,则右端补空格。

小小战士,战士中的战斗机!
2012-11-22 12:07
快速回复:求解惑,关于浮点数
数据加载中...
 
   



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

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