以科学记数法显示小数
如何将 Decimal('40800000000.00000000000000')
显示为 '4.08E+10'
?
我已经尝试过这个:
>>> '%E' % Decimal('40800000000.00000000000000')
'4.080000E+10'
但它有那些额外的 0。
How can I display Decimal('40800000000.00000000000000')
as '4.08E+10'
?
I've tried this:
>>> '%E' % Decimal('40800000000.00000000000000')
'4.080000E+10'
But it has those extra 0's.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(13)
在“40800000000.00000000000000”中,有许多更重要的零,它们与任何其他数字具有相同的含义。这就是为什么你必须明确告诉你要在哪里停止。
如果您想自动删除所有尾随零,您可以尝试:
In your '40800000000.00000000000000' there are many more significant zeros that have the same meaning as any other digit. That's why you have to tell explicitly where you want to stop.
If you want to remove all trailing zeros automatically, you can try:
以下是使用
format()
函数的示例:除了格式之外,您还可以使用 f-strings:
官方文档
原始 format() 提案
Here's an example using the
format()
function:Instead of format, you can also use f-strings:
official documentation
original format() proposal
鉴于您的号码
,从 Python 3 开始,
是推荐的方法。
e
表示您需要科学记数法,.2
表示您需要点后 2 位数字。所以你会得到x.xxE±n
Given your number
Starting from Python 3,
is the recommended way to do it.
e
means you want scientific notation, and.2
means you want 2 digits after the dot. So you will getx.xxE±n
没有人提到
.format
方法的简短形式:至少需要 Python 3.6
(我相信它与 Cees Timmerman 相同,只是更短一点)
No one mentioned the short form of the
.format
method:Needs at least Python 3.6
(I believe it's the same as Cees Timmerman, just a bit shorter)
这是“简单”答案和问题的综合列表。评论。
PYTHON 3
或没有
IMPORT
的比较
对于 Python 3,您现在可以在这三个中的任何一个之间切换。
我的最爱:
This is a consolidated list of the "Simple" Answers & Comments.
PYTHON 3
OR Without
IMPORT
'sComparing
So for Python 3, you can switch between any of the three for now.
My Fav:
请参阅 Python 字符串格式 中的表格来选择正确的格式布局。在您的情况下,它是
%.2E
。See tables from Python string formatting to select the proper format layout. In your case it's
%.2E
.这对我来说效果最好:
This worked best for me:
我更喜欢 Python 3.x 方式。
4
表示浮动部分显示多少位。I prefer Python 3.x way.
4
indicates how many digits are shown shown in the floating part.我的小数对于
%E
来说太大了,所以我不得不即兴发挥:这是一个示例用法:
My decimals are too big for
%E
so I had to improvize:Here's an example usage:
要将小数转换为科学记数法,而不需要在格式字符串中指定精度,并且不包含尾随零,我当前使用的
是要保留任何尾随零,只需删除
normalize()
。To convert a Decimal to scientific notation without needing to specify the precision in the format string, and without including trailing zeros, I'm currently using
To keep any trailing zeros, just remove the
normalize()
.添加更新的答案以展示如何仅将
e notation
应用于小数字Adding an updated answer to show how to apply
e notation
to small numbers only这是我能找到的最简单的一个。
(“E”不区分大小写。您也可以使用“.2e”)
Here is the simplest one I could find.
('E' is not case sensitive. You can also use '.2e')