将浮点数转换为某个精度,然后复制到字符串

我有一个浮点数,比如135.12345678910 。 我想将该值连接到一个字符串,但只想要135.123456789 。 通过打印,我可以通过执行以下操作轻松完成此操作:

print "%.9f" % numvar

numvar是我的原始数字。 是否有捷径可寻?


使用python <3(例如2.6 [见注释]或2.7),有两种方法可以这样做。

# Option one 
older_method_string = "%.9f" % numvar

# Option two
newer_method_string = "{:.9f}".format(numvar) 

但是请注意,对于Python版本高于3(例如3.2或3.3),选项2是首选。

有关选项2的更多信息,我建议从python文档中链接字符串格式。

对于选项一的更多信息,这个链接就足够了,并且有各种标志的信息。

更新:Python 3.6(2016年12月正式发布),将添加f字符串字面值,在此处查看更多信息,它扩展了str.format方法(使用大括号使f"{numvar:.9f}"解决原始问题)。


使用一轮:

>>> numvar = 135.12345678910
>>> str(round(numvar,9))
'135.123456789'
>>>

Python 3.6 | 2017年

为了清楚起见,您可以使用f-字符串格式。 这与format方法几乎相同的语法,但使它更好一点。

例:

print(f'{numvar:.9f}')

关于新的f字符串的更多阅读:

  • Python 3.6中的新功能(与上述链接相同)
  • PEP官方文档
  • Python官方文档
  • 真的很棒的博客文章,也谈论性能: 在这里输入图像描述
  • 链接地址: http://www.djcxy.com/p/21369.html

    上一篇: Convert floating point number to certain precision, then copy to String

    下一篇: What is a simple example of floating point/rounding error?