| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 509 人关注过本帖
标题:浮点数问题
只看楼主 加入收藏
Heart→M鹏
Rank: 2
等 级:论坛游民
帖 子:80
专家分:94
注 册:2011-5-13
结帖率:83.33%
收藏
已结贴  问题点数:1 回复次数:5 
浮点数问题
程序代码:
# include <stdio.h>
int main(void)
{
    double i = 50.0;
   
    printf("i = %f i = %d\n",i ,i);
    return 0;
}
为什么那个i = %d是0呢?
2011-09-17 01:07
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
因为类型不符,发生未知错误,无法正确输出,输出了垃圾数据,输出的值,与系统,编译器有关,不必深究

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-17 08:06
mfdukh008
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2011-9-17
收藏
得分:0 
double在内存中占8个字节,int 占4个字节(有的为2个字节)。
你用%d输出的时候,输出的是i的低端4个字节,全为0,所以结果为0。
你把50。0换成一个偏大的数,比如5000000000.0,结果%d就不会再为0,当然,也不是原来数。
2011-09-17 08:09
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
不要这样做 是啥数据类型就以啥格式输出就行啦

                                         
===========深入<----------------->浅出============
2011-09-17 10:07
wantf
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-15
收藏
得分:0 
三楼正解,还是根据数据类型来确定输出格式,免得出错。
2011-09-17 10:12
tisyang
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:132
专家分:737
注 册:2011-5-7
收藏
得分:0 
printf scanf sprintf sscanf 这一族函数算是C库里面顶级复杂的函数了。

具体可以看: http://www.
和 http://

C++ 用无参数构造函数生成对象时候请勿在构造函数后添加无用的那一对括号,否则有可能会被当成函数声明而忽略,嗯,栈上构建的时候就是这样。
2011-09-17 10:14
快速回复:浮点数问题
数据加载中...
 
   



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

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