accustem 发表于 2022-6-16 00:10:20

有个疑惑,str(5e4)是‘50000’,str(0.0005)却是‘5e-4‘

看书看到这段,有点疑惑python里这么设置是什么原因呢

临时号 发表于 2022-6-16 00:25:08

本帖最后由 临时号 于 2022-6-16 02:36 编辑

5e4的意思是5*10**4,这是一个科学计数法,你执行str(5e4)的时候肯定要先把科学计数法的结果算出来再转化成字符串

小甲鱼 发表于 2022-6-16 02:27:46

这个是科学计数法哈,5e4 相当于 5 * 10^4(10 的 4 次方),而 5e-4 相当于 5 * 10^(-4)(10 的 -4 次方)

useddministered 发表于 2022-6-16 09:46:36

e4可以看作10的四次方,e-4看作10的-4次方

accustem 发表于 2022-6-16 21:43:30

临时号 发表于 2022-6-16 00:25
5e4的意思是5*10**4,这是一个科学计数法,你执行str(5e4)的时候肯定要先把科学计数法的结果算出来再转化成字 ...

但是为什么小数执行str()的时候却会转成科学计数法呢,这不是应该统一的吗

accustem 发表于 2022-6-16 21:47:16

小甲鱼 发表于 2022-6-16 02:27
这个是科学计数法哈,5e4 相当于 5 * 10^4(10 的 4 次方),而 5e-4 相当于 5 * 10^(-4)(10 的 -4 次方)

嗯,是的这个是科学计数法,我是疑惑为什么大于零的数会把科学计数法转换成为数的形式,而小于零的数却会反过来。按照一般的做法,不是应该要么都用科学计数法表示,要么都用普通数字的形式表示吗。是正好选用了这种表示的形式呢,还是有什么特别的好处呢。

hrpzcf 发表于 2022-6-16 23:31:53

accustem 发表于 2022-6-16 21:47
嗯,是的这个是科学计数法,我是疑惑为什么大于零的数会把科学计数法转换成为数的形式,而小于零的数却会 ...

因为你写的一个是整数一个是小数。Python中整数默认用普通写法,小数位多过N位默认用科学计数法。

accustem 发表于 2022-6-20 23:10:21

hrpzcf 发表于 2022-6-16 23:31
因为你写的一个是整数一个是小数。Python中整数默认用普通写法,小数位多过N位默认用科学计数法。

谢谢,虽然觉得还是没有很了解后面的原因,不过还是感谢您的答案
页: [1]
查看完整版本: 有个疑惑,str(5e4)是‘50000’,str(0.0005)却是‘5e-4‘