请教大家一个指数格式输出问题?
我用的系统是Turbo C 2.0 运行下列程序:
#include "stdio.h"
#include "math.h"
main()
{ double k;
k=2.0;
printf("\n%4.1f,%8.1e",k,pow(k,k));
}
运行结果:
2.0, 4e+00
现在有一个问题:
%8.1e 输出的结果为什么是 4e+00 应该小数位有一位,为什么输出时没有小数位。
曾试过把程序输出格式改成 %8.2e ,但是结果为 4.0e+00 按常理小数后面应该有两位,为什么会是这样的情况呢?
请大家帮帮忙,谢谢!
[此贴子已经被作者于2006-2-25 10:29:58编辑过]
----------------解决方案--------------------------------------------------------
我记得好像
小数点占一位
----------------解决方案--------------------------------------------------------
又好像不是。
----------------解决方案--------------------------------------------------------
小数点要占一位,你是把它改为%8.3e
----------------解决方案--------------------------------------------------------
我试过了。
如果是浮点或双精度的话,是没有算小数点。比如%5.3f就是小数点后面3位
但如果是指数形式输出的话,又好像要算小数点。
所以我迷惑
----------------解决方案--------------------------------------------------------
如果改成%8.3的话,小数点后面只有两位,这样看来小数点应该算一位的,查了好多资料都没有清晰的说明,所以更加迷惑了。
----------------解决方案--------------------------------------------------------
这主要是编译器的问题
这是我的截图,复制粘贴后的,没进行任何改动
[此贴子已经被作者于2006-3-1 12:25:52编辑过]
----------------解决方案--------------------------------------------------------
我尝试过了,好像是一个固定的格式吧,浮点就不算小数点,指数就是要求算小数点的。记住就可以了。
----------------解决方案--------------------------------------------------------
谢谢大家,今天在WINDOWS版本的C语言编译器中试了一下,能够正确的输出了。大概在TurboC2.0里面小数点也算一位的。
----------------解决方案--------------------------------------------------------
我白进来看了,因为问题解决了
不过谢谢你我也有所收获啊!
----------------解决方案--------------------------------------------------------