【问题标题】:Python float to string, only "dotted notation"?Python浮点到字符串,只有“点符号”?
【发布时间】:2012-06-04 01:32:50
【问题描述】:

我正在将浮点数写入文本文件,如果 Python 停止将“0.000002”之类的数字写为“2e-6”,我将不胜感激。我能做什么?

【问题讨论】:

标签: python string floating-point representation


【解决方案1】:

你可以使用格式化指令,比如这个:

n = 0.000002
print('{:f}'.format(n))
0.000002

有关格式化的更多信息,请参阅这些Python docs

如果在 Python v2.6 之前工作,则为旧式(感谢 @mgilson 和 @artSwri)

print('%f' % n)

【讨论】:

  • 这会在 python 2.6 (OS-X) 上引发 ValueError(ValueError:格式中的零长度字段名称)
  • @ArtSwri -- 我使用的是 python 2.6。 (符合要求)
  • @mgilson:如果您将'{:f}' 替换为'{0:f}',它对您有用吗?
  • @EdwardLoper -- 是的。 (其中一天我将开始学习 .format 代替 %)——我想这可能是我教育的开始......
  • @mgilson 就在今天早上,我注意到 Ubuntu 下的 v 2.6.5 与 Windows 下的 2.7.3 和 3.2.3 存在一些不一致。 2.6.5 需要更多规范信息,但有效
【解决方案2】:
>>> "%f" % 2e-6
'0.000002'

【讨论】:

  • @mgilson 查看 KDiTraglia 评论中的链接,了解为什么 2e-7 “不起作用”以及如何解决它。
猜你喜欢
  • 2021-10-09
  • 2016-01-03
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
相关资源
最近更新 更多