Python替换浮点数只​​给出整数

时间:2011-09-17 12:38:16

标签: python variables floating-point arguments

我正在读取一个csv文件,用一行提取一段数据:

x = float(node[1])

当我打印(x)时,我得到正确的值或单元格中找到的确切值。例如153.018848

但是当我尝试将x作为变量传递时:

print('<node version="0" lon="%d">' %(x)) 

输出为<node version="0" lon="153">。当然我想要值153.018848。

我忽略了什么?

提前致谢。

3 个答案:

答案 0 :(得分:3)

你忽略了%d is for integers的事实。请改为%f

答案 1 :(得分:1)

您希望将%d替换为%f,问题已解决;)

请参阅:http://docs.python.org/release/2.5.2/lib/typesseq-strings.html

对于奖励积分,您是否知道可以将使用词典仍然可读的长格式字符串组合在一起?你可以阅读更多关于它的内容,但是我用过的!r选项会在变量上调用 repr ()函数,所以你知道插入的内容将是你在你的内容中看到的内容。调试:

string = """<tagname id=%{idval!r} type=%{tagtype!r} foo=%{bar!r}"""
print string.format( **{'idval':var1, 'tagtype':var2, 'bar':var3})

答案 2 :(得分:1)

您使用的是错误的格式标记。 %d用于整数,使用%f表示浮点数。