| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4990 人关注过本帖
标题:C语言的浮点数问题~
只看楼主 加入收藏
svjh
Rank: 1
等 级:等待验证会员
帖 子:47
专家分:0
注 册:2007-11-27
收藏
 问题点数:0 回复次数:15 
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-01-25 16:56
孤心辰
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-11-6
收藏
得分:0 
C语言有规定,float小数,它只输入小数点后6位小数
2008-01-25 17:04
孤心辰
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-11-6
收藏
得分:0 
不好意思,有点错误,是输出小数点后6位小数,别的省去了,所以小数多的时候,要想精确就用double
2008-01-25 17:05
svjh
Rank: 1
等 级:等待验证会员
帖 子:47
专家分:0
注 册:2007-11-27
收藏
得分:0 
但这个数是123.1122334455667788啊,
如果省去后面的,
那么不是123.112233吗?
2008-01-25 17:16
闪闪4521
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-11-30
收藏
得分:0 
这个问题好奇怪耶,我试了试
好像是应为小数存储的时候,电脑在转换成2进制时会产生误差,
如果f_number小数点后小于5位的话输出的数会比他小0.000002,
多了的话最后以为就不知道是什么了,
我也不是很清楚,有谁更明白一点的吗?
2008-01-25 21:45
老鼠头头
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-12-11
收藏
得分:0 
tong wen~~~
2008-01-26 00:46
lstary
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2008-1-21
收藏
得分:0 
是有一些误差的,应该是在转换的时候出现的
2008-01-26 00:57
devil_v6
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-10-29
收藏
得分:0 
恩,我试了下,估计是机器在转换的时候的错误,

2008-01-26 11:00
沙漠风暴
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-1-26
收藏
得分:0 
单精度浮点数,只能精确8位,最后一位随机输出
2008-01-26 11:38
svjh
Rank: 1
等 级:等待验证会员
帖 子:47
专家分:0
注 册:2007-11-27
收藏
得分:0 
原帖由 [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]]
2008-01-26 22:06
快速回复:C语言的浮点数问题~
数据加载中...
 
   



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

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