| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3655 人关注过本帖
标题:printf("%f\n", 10/3);这个为什么值不确定?
取消只看楼主 加入收藏
printc
Rank: 2
来 自:坎坷之路
等 级:论坛游民
帖 子:162
专家分:84
注 册:2009-6-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
printf("%f\n", 10/3);这个为什么值不确定?
RT,强制类型转换后确定为3.000000,但是如果直接写printf("%f\n", 10/3);每次值都不一样。。怎么回事?
搜索更多相关主题的帖子: printf 
2009-07-30 22:12
printc
Rank: 2
来 自:坎坷之路
等 级:论坛游民
帖 子:162
专家分:84
注 册:2009-6-12
收藏
得分:0 
Ubuntu-8.10-desktop-i386

确定是32位系统

人生之路,坎坷颇多……
2009-07-31 06:44
printc
Rank: 2
来 自:坎坷之路
等 级:论坛游民
帖 子:162
专家分:84
注 册:2009-6-12
收藏
得分:0 
以下是引用StarWing83在2009-7-31 09:58的发言:

因为printf是一个不定参数函数。这种函数的不定参数部分,内部类型都会自动提升。float会自动提升为double再传给printf,因此printf期望从输入中获得一个double(64位),却只给一个32位的数字,当然每次都不一样啦… ...


精辟啊

人生之路,坎坷颇多……
2009-07-31 11:47
快速回复:printf("%f\n", 10/3);这个为什么值不确定?
数据加载中...
 
   



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

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