我正在读取一个csv文件,用一行提取一段数据:
x = float(node[1])
当我打印(x)时,我得到正确的值或单元格中找到的确切值。例如153.018848
但是当我尝试将x作为变量传递时:
print('<node version="0" lon="%d">' %(x))
输出为<node version="0" lon="153">
。当然我想要值153.018848。
我忽略了什么?
提前致谢。
答案 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表示浮点数。