CaptainBiken 发表于 2020-8-12 17:46:43

科学计数法及左右对齐

本帖最后由 CaptainBiken 于 2020-8-12 18:06 编辑

代码来自第四节:变量的课后习题

printf("右对齐,指数形式:%10e\n", 520000.0);      
结果为5.200000e+05
printf("左对齐,指数形式:%-10E\n", 520000.0);
结果为5.200000E+05

问题:
1.其中e和E的表示有什么区别?
2.怎么看出来结果是左对齐还是右对齐呢?
3.怎么看出来这两种结果的位数为10位?520000005是九位,e/E占一位?

求大佬解答!感谢

baige 发表于 2020-8-12 17:58:18

1. 输出的大小写E
2.上面位数左右对齐看不出,你可以把10改大一点
3. 10位是你定义的

CaptainBiken 发表于 2020-8-12 18:03:58

baige 发表于 2020-8-12 17:58
1. 输出的大小写E
2.上面位数左右对齐看不出,你可以把10改大一点
3. 10位是你定义的

感谢大佬
大佬的意思是e和E表示的含义是一样的吗?(在表示科学计数的时候等同?)

baige 发表于 2020-8-12 18:10:14

CaptainBiken 发表于 2020-8-12 18:03
感谢大佬
大佬的意思是e和E表示的含义是一样的吗?(在表示科学计数的时候等同?)

相同

CaptainBiken 发表于 2020-8-12 18:27:53

baige 发表于 2020-8-12 18:10
相同

原来如此
那小甲鱼在这里先用e后用E就是闲的啊.........{:5_97:}
大佬能不能再看下我的第三个问题呢,一开始我的表述不是很清楚,又重新编辑了一下
再次感谢大佬

baige 发表于 2020-8-12 19:23:28

这个第三是我说错了,%e在一些编译器默认宽度是12位,一些是13位,当我们设置的宽度小于编译器默认的宽度时,编译器会按照默认输出,你上面的输出就是12位的,

CaptainBiken 发表于 2020-8-13 16:29:19

baige 发表于 2020-8-12 19:23
这个第三是我说错了,%e在一些编译器默认宽度是12位,一些是13位,当我们设置的宽度小于编译器默认的宽度时 ...

感谢大佬
我去试了下,%13e及以下都没有差别,%14e开始才能看出来左右对齐,所以我认为我的输出应该是13位
页: [1]
查看完整版本: 科学计数法及左右对齐