【问题标题】:python: convert a number in scientific format to string [duplicate]python:将科学格式的数字转换为字符串[重复]
【发布时间】:2017-11-29 17:31:55
【问题描述】:

我在列表中有一系列科学格式的数字:

A = [1e-2, 1e-3, 1e-4]

我想做的就是把A变成B:

B = ['1e-2','1e-3','1e-4']

我认为可以通过以下方式完成转换:

B = [str(A[ii]) for ii in range(len(A))]

但它给出了:

B = ['0.01','0.001','0.0001']

【问题讨论】:

  • format(num, "e") 也许?
  • @TadhgMcDonald-Jensen 这实际上非常简洁。但是,我自己尝试过,它正在输出:'1.000000e-02'。其中,对我来说相同,但不是完全如预期。尽管如此,还是非常棒的。不知道格式对于以这种方式表示的数字是否如此。
  • @TadhgMcDonald-Jensen:您能否更具体地说明在哪里使用格式功能
  • 如果你只想要一个数字,那么".0e" '小数点后没有数字',它会在列表 comp 中使用:[format(num, "e") for num in A]
  • 您没有一系列科学格式的数字。科学格式只是用于将浮点数放入列表中的字符串表示形式。浮点数在转换为浮点数之前如何格式化为字符串,浮点数不知道(您的程序也不知道)

标签: python


【解决方案1】:

试试['{:.0e}'.format(float(x)) for x in A]

【讨论】:

  • 您不需要str.format,也不需要float 电话。 [format(x, '.0e') for x in A] 也同样有效。
  • @vaultah:两者都是很好的解决方案!!但你的更好!
  • 我得到的是'1e-02' 而不是'1e-2',有没有办法消除02 部分中的0?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-14
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多