【发布时间】:2014-10-03 09:36:19
【问题描述】:
我意识到这个问题可以解释为与其他问题相似,所以在我开始之前,在大家开始指出之前,这里列出了一些可能的“重复”。这些似乎都没有真正正确地回答我的问题。
我的问题与使用 string.format() 方法显示整数有关。
在运行 python 2.7 的解释器中使用 % 字符串格式运行以下代码
>>> print "%d" %(1.2345)
1
而使用string.format() 方法会导致以下结果
>>> print "{:d}".format(1.2345)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: Unknown format code 'd' for object type 'float'
我期待两者的行为相同;让解释器在显示之前将我的浮点数实际转换为整数。我意识到我可以只使用 int 函数将浮点数转换为整数格式,但我正在寻找与 %d 格式化方法相同的功能。是否有任何string.format() 方法可以为我做到这一点?
【问题讨论】:
-
如果您不知道您的变量是否为整数,那么不只是自己明确进行转换的原因是什么?例如
print "{:d}".format(int(1.2345)) -
@Tom,正如我所说,我可以自己进行转换,我所有的麻烦都会消失。但我真正想知道的是,为什么两种乍一看非常相似的方法做的事情并不完全相同。
标签: python string string-formatting