| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 1946 人关注过本帖
标题:C语言的浮点数问题~
收藏  订阅  推荐  打印 
svjh
Rank: 2
等级:注册会员
帖子:45
积分:584
注册:2007-11-27
C语言的浮点数问题~

以下是程序代码:
程序代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
    float f_number=123.1122334455667788f;
    double d_number=123.1122334455667788;
    printf("实数值 = 123.1122334455667788\n");
    printf("----------------\n");

/*单精度浮点数*/
    printf("单精度浮点数小数表示法= %f\n",f_number);
    printf("单精度浮点数科学计数法= %e\n",f_number);

/*双精度浮点数*/
    printf("双精度浮点数小数表示法= %f\n",d_number);
    printf("双精度浮点数科学计数法= %e\n",d_number);

    system("pause");
    return 0;
}
我想知道为什么单精度浮点数小数表示法的输出结果是:

123.112236

这里的最后一位怎么是6呢?

即使四舍五入也不对啊?

哪位高手来解答一下?

[[italic] 本帖最后由 svjh 于 2008-1-26 21:59 编辑 [/italic]]
搜索更多相关主题的帖子: 点数  C语言  quot  number  单精度  
2008-1-25 16:56
孤心辰
Rank: 1
等级:新手上路
帖子:21
积分:322
注册:2007-11-6

C语言有规定,float小数,它只输入小数点后6位小数
2008-1-25 17:04
孤心辰
Rank: 1
等级:新手上路
帖子:21
积分:322
注册:2007-11-6

不好意思,有点错误,是输出小数点后6位小数,别的省去了,所以小数多的时候,要想精确就用double
2008-1-25 17:05
svjh
Rank: 2
等级:注册会员
帖子:45
积分:584
注册:2007-11-27

但这个数是123.1122334455667788啊,
如果省去后面的,
那么不是123.112233吗?
2008-1-25 17:16
闪闪4521
Rank: 3Rank: 3
等级:中级会员
帖子:196
积分:2234
注册:2007-11-30

这个问题好奇怪耶,我试了试
好像是应为小数存储的时候,电脑在转换成2进制时会产生误差,
如果f_number小数点后小于5位的话输出的数会比他小0.000002,
多了的话最后以为就不知道是什么了,
我也不是很清楚,有谁更明白一点的吗?
2008-1-25 21:45
老鼠头头
Rank: 1
等级:新手上路
帖子:11
积分:214
注册:2007-12-11

tong wen~~~
2008-1-26 00:46
lstary
Rank: 2
等级:注册会员
帖子:70
积分:868
注册:2008-1-21

是有一些误差的,应该是在转换的时候出现的
2008-1-26 00:57
devil_v6
Rank: 2
等级:注册会员
帖子:85
积分:988
注册:2007-10-29

恩,我试了下,估计是机器在转换的时候的错误,

2008-1-26 11:00
沙漠风暴
Rank: 1
等级:新手上路
帖子:2
积分:120
注册:2008-1-26

单精度浮点数,只能精确8位,最后一位随机输出
2008-1-26 11:38
svjh
Rank: 2
等级:注册会员
帖子:45
积分:584
注册:2007-11-27

原帖由 [bold][underline]沙漠风暴[/underline][/bold] 于 2008-1-26 11:38 发表 [url=http://bbs.bccn.net/redirect.php?goto=findpost&pid=1188287&ptid=198728][/url]
单精度浮点数,只能精确8位,最后一位随机输出
不是只精确6位吗? 怎么8位?? (更糊涂了......-_-|||)
随机??
是指每次输出的最后一位都是随机的,
还是指根据浮点数来随机呢``? ( 但如果根据浮点数来随机的话,应该有规律可循吧`` )

[[italic] 本帖最后由 svjh 于 2008-1-26 22:08 编辑 [/italic]]

—— . : : 聆 落 拾 三 社 : : . ————  http://www.llsss.com.cn  ——
2008-1-26 22:06
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.066339 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved