标题:float函数问题
只看楼主
雾里偷花
Rank: 2
来 自:社会
等 级:论坛游民
帖 子:45
专家分:33
注 册:2009-10-27
结帖率:100%
已结贴  问题点数:20 回复次数:5 
float函数问题
程序代码:
# include<stdio.h>
int main()
{

 float i;

 scanf("%f",&i);

 printf("%.1f\n",i);

 getch();
}
我是输出保留一位小数点,输入大于一位小数点时是不是就把第二位四舍五入???可是有些数值不五入(比如有些第二位小数点为5时不会,输入的数据没超出有效位),请高手解答~~~~~~~~~~
搜索更多相关主题的帖子: 函数 float 
2010-02-28 02:59
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:15 
这应该是float类型数据在内存存储的问题!

因为小数部分化为二进制数时,有些是不可能完全与十进制的小数对等的.比如0.45那么化为二进制后,再还原回来就不是0.45而可能是小于0.45了,因此四舍五入,就不会是0.5而是0.4了!

★★★★★为人民服务★★★★★
2010-02-28 08:24
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:0 
float double之类型被称之为不精确类型

★★★★★为人民服务★★★★★
2010-02-28 08:29
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:5 
我还真没注意过这类似的问题。不过如果是这样,原理到是很清楚~~ 就是楼上说的那么回事。
2010-02-28 09:20
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:0 
前面说的对不对,希望共同探导!

★★★★★为人民服务★★★★★
2010-02-28 14:01
雾里偷花
Rank: 2
来 自:社会
等 级:论坛游民
帖 子:45
专家分:33
注 册:2009-10-27
得分:0 
呵呵~~~
谢谢~~~~
2010-02-28 14:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-298229-1-1.html




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

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