【问题标题】:How to control the exact format of scientific notation in a Python format string?如何控制 Python 格式字符串中科学记数法的准确格式?
【发布时间】:2020-08-23 15:10:54
【问题描述】:

我的问题是,我有几个数字,范围从0.6e93.6e9。我已经在使用f"foo {number:.1E} bar" 来实现 f 字符串的打印/显示的科学格式化,但是这有一个问题是0.6e9 被“缩短”为6.0e8,这不是我想要的。

我意识到,从技术上讲,这是一个正确的答案,但出于显示目的和可读性的目的,我认为最好将其用作 0.6e9,以便与其他答案保持一致。

要明确我想要的是控制科学格式中使用的 10 的幂。
这是可以轻松控制的,还是需要自定义函数?

【问题讨论】:

  • 具体在哪里?您传递给 matplotlib 的刻度、标签、一些格式字符串?请给出一个您希望在哪里发生这种情况的最小示例,最好是如果这是一个带有一些数字的图作为一个简短的示例。
  • 请附上一些代码,以便提供与您的程序相关的更好的解决方案。
  • @kabanus 任何地方。格式化是由标准的 python 格式化符号完成的,与它将在哪里使用无关。即使是简单的print() 行。 (例如,在 python 控制台中键入 print(f"{10000:.1e}")。)在我的特殊情况下,我在 pyplot 绘图的 label 参数中使用了它,但它只是一个 f 字符串。
  • 我已经修改了你的问题以明确这一点 - matplotlib 提及有点像红鲱鱼,因为它有自己的格式化套件。

标签: python scientific-notation


【解决方案1】:

由于您提到这只是一个 f 字符串,因此在您的特定示例中,范围有限,这可能足以具有符合格式的字符串:

f'{number/1e9:.1f}e9'

【讨论】:

  • 聪明!我已经对其进行了调整以满足我在 matplotlib 绘图标签中的需要fr"{number/1e9:.1f}$\times 10^9$",这正是我所希望的,谢谢!
  • @ch4rl1e97 使用 tex 会更好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-15
  • 1970-01-01
  • 2017-06-07
  • 2021-12-05
  • 1970-01-01
相关资源
最近更新 更多