| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3074 人关注过本帖
标题:E到底是多少?
只看楼主 加入收藏
BBGASJ
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-8-15
结帖率:100%
收藏
 问题点数:0 回复次数:14 
E到底是多少?
一直以为E代表10,但这个程序:
main()
{
float a=6.02e23;
printf("%f",a);
getch();
return 0;
}
输出的a值中间却夹了好几个数字.那么C中到底是如何定义E的呢?希望获得解答.
先谢谢了!
搜索更多相关主题的帖子: 数字 return 如何 
2007-10-13 22:50
symos
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-9-15
收藏
得分:0 
6.02e23 的意思是 6.02乘以10的23次方

2007-10-13 22:57
奔跑的鸟
Rank: 1
等 级:新手上路
帖 子:391
专家分:0
注 册:2006-1-20
收藏
得分:0 
2.71828

简单的快乐着~
2007-10-13 23:04
kingkong6358
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2007-10-11
收藏
得分:0 
哦!!!我明白了

2007-10-13 23:07
BBGASJ
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-8-15
收藏
得分:0 
6.02e23 的意思是 6.02乘以10的23次方

但出来的数不是6020000000000000000000
中间的几个0是其他的数值

而E=2.71828的话,得的值也不对

Stay Hungry. Stay Foolish.
2007-10-14 10:03
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

楼上明白什么了

这个主要是FLOAT的精度引起的,他只有6-7位精确的,后面的就是随机的了,另外小数点也有可能导致这个问题,去看看小数点怎样转换为二进制数就知道为什么.估计用long double可以达到这个精度


雁无留踪之意,水无取影之心
2007-10-14 10:03
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

这里的E是10,不是2.71828,这是一种科学计数学的表示方法


雁无留踪之意,水无取影之心
2007-10-14 10:04
zhy20045923
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-10-3
收藏
得分:0 
这是精度的问题

2007-10-14 10:15
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
这是浮点数的科学符号表示法,以e+,e-代表正負10次方

英者自知,雄者自胜
2007-10-14 10:43
symos
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2007-9-15
收藏
得分:0 
定义a为double类型应该就没问题了

2007-10-14 11:35
快速回复:E到底是多少?
数据加载中...
 
   



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

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