将浮点数转换为某个精度,然后复制到字符串
我有一个浮点数,比如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字符串的更多阅读:
上一篇: Convert floating point number to certain precision, then copy to String
下一篇: What is a simple example of floating point/rounding error?