好的,请耐心等待,我对此完全陌生。这是给学校的,确切的语法在这里对我的作业并不重要,但就我个人的知识而言,我想了解更多关于字符串格式的知识。
每当我使用 %f 时,它默认为 2 位小数。是否有可以在浮点数上使用的字符串格式,以显示浮点数及其实际具有的小数位数?
例如,我的列表包含 2.0、2.01、2.001、2.0001,我想使用字符串格式来打印它们的外观。如果可能,我将使用哪种格式代码或如何正确使用 %f?
这是在 Windows 7 上的 Python 2.7 中(如果重要的话)。
好的,请耐心等待,我对此完全陌生。这是给学校的,确切的语法在这里对我的作业并不重要,但就我个人的知识而言,我想了解更多关于字符串格式的知识。
每当我使用 %f 时,它默认为 2 位小数。是否有可以在浮点数上使用的字符串格式,以显示浮点数及其实际具有的小数位数?
例如,我的列表包含 2.0、2.01、2.001、2.0001,我想使用字符串格式来打印它们的外观。如果可能,我将使用哪种格式代码或如何正确使用 %f?
这是在 Windows 7 上的 Python 2.7 中(如果重要的话)。
如果您将浮点数转换为字符串,那么当您打印它时,它将按照您编写的方式显示。
>>> x = str(2.0)
>>> print(x)
2.0
>>> x = str(2.01)
>>> print(x)
2.01
>>> x = str(2.001)
>>> print(x)
2.001
>>> x = str(2.0001)
>>> print(x)
2.0001
(实际上,准确地说,在 Python 中,您实际上并没有转换浮点对象,而是创建了一个看起来像它的字符串对象。但这有点超出了您的问题范围。)
更新
有人在这里发布了一种使用 Decimal 类从浮点数中删除尾随零的方法:Removing Trailing Zeros in Python
%g
可能是您正在寻找的:
>>> "%g, %g, %g, %g" % (2.1, 2.01, 2.001, 2.0001)
'2.1, 2.01, 2.001, 2.0001'