标题:[菜鸟的问题]请问e/E的用法
只看楼主
SuperStar515
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2006-12-24
 问题点数:0 回复次数:17 
[菜鸟的问题]请问e/E的用法

#include <stdio.h>

void main ()
{
float value = 1.23456;

printf ("%12.1e\n", value);
printf ("%12.3e\n", value);
printf ("%12.5e\n", value);
}


#include <stdio.h>

void main ()
{
float pi = 3.14159;
float radius = 2.0031;

printf("The circle's area is %e\n", 2 * pi * radius);
printf("The circle's area is %E\n", 2 * pi * radius);
}


请问这个e/E的用法和功能是怎么样的呢?

[此贴子已经被作者于2007-1-11 16:23:07编辑过]

搜索更多相关主题的帖子: 用法 printf radius 
2007-01-11 16:18
SuperStar515
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2006-12-24
得分:0 

第一个程序里%12.1e,结果表示为1位有效数字 这里12表示什么意思啊??
第二个程序里%e,结果表示为6位有效数字 为什么呢??%与e之间不加数字,默认为6位有效数字?


喜欢等待,因为等待是一门需要花费一生才能读懂的艺术。等待。。。
2007-01-11 16:44
SuperStar515
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2006-12-24
得分:0 

喜欢等待,因为等待是一门需要花费一生才能读懂的艺术。等待。。。
2007-01-11 17:55
davidloves
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-1-6
得分:0 
以下是引用SuperStar515在2007-1-11 16:44:34的发言:

第一个程序里%12.1e,结果表示为1位有效数字 这里12表示什么意思啊??

转换说明符e和E分别在指数前面打印小写字母e和大写字母E,并且总是把小数点左边的数字打印出一位
12代表打印宽度。。。。。这里是右对齐


2007-01-11 18:38
davidloves
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-1-6
得分:0 
默认情况下,用转换说明符e,E打印出的值带6个小数位。当然也可以明确指定其他精度
如你的第一个程序,精度分别为1 3 5,所以打印出的数在小数点右边分别有1 3 5位数字。

[此贴子已经被作者于2007-1-11 18:44:44编辑过]


2007-01-11 18:43
SuperStar515
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2006-12-24
得分:0 
默认情况下,用转换说明符e,E打印出的值带6个小数位。当然也可以明确指定其他精度
如你的第一个程序,精度分别为1 3 5,所以打印出的数在小数点右边分别有1 3 5位数字。
是6位有效数字吧??
谢谢哦~~

喜欢等待,因为等待是一门需要花费一生才能读懂的艺术。等待。。。
2007-01-11 18:51
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
得分:0 
以下是引用SuperStar515在2007-1-11 16:44:34的发言:

第一个程序里%12.1e,结果表示为1位有效数字 这里12表示什么意思啊??
第二个程序里%e,结果表示为6位有效数字 为什么呢??%与e之间不加数字,默认为6位有效数字?

有效数字可不是这个呀!有效数字是指从左边第一个不是零的数开,到右边精确的数为止,应该是这个概念吧!呵呵!


该学习了。。。
2007-01-11 18:53
davidloves
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-1-6
得分:0 
7楼说得对,精确位数和有效数字没有什么联系,不过这里由于e(E)的缘故,小数点左边只有一位数字,所以打印出来的有效数字个数是1+精确位数

2007-01-11 19:18
SuperStar515
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2006-12-24
得分:0 
结果是:
第一个程序: 1e+00
1.23e+00
1.2346e+00
第二个程序:......1.25858e+01
......1.25858E+01
从结果看,那些数字好象是有效数字位数,而不是小数位数啊?!

喜欢等待,因为等待是一门需要花费一生才能读懂的艺术。等待。。。
2007-01-11 19:36
davidloves
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-1-6
得分:0 

1.2e+000
1.235e+000
1.23456e+000
我的编译输出是这个~


2007-01-11 19:40



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




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

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