2011-09-17 16 views
1

我读成csv文件的提取与行的一块数据:的Python Substituiting浮法只给整数

x = float(node[1]) 

当我打印(X),我得到正确的值或在单元格中找到确切的值。 e.g 153.018848

但是,当我尝试通过X作为变量如下:

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

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

我忽略了什么?

在此先感谢。

+1

哈哈,我是个白痴! – Pat

回答

3

您忽略了%d is for integers这一事实。改为尝试%f

+0

哇,我不知道有什么区别。我一直认为这是一些任意的字母。无论如何,它的作品!谢谢。 – Pat

1

你想更换%F,解决问题您%d)

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

加分,你是否知道,你可以放在一起长格式字符串仍然可读使用字典?你可以阅读更多关于它的知识,但是我已经使用了!r选项,并且在变量上调用了函数(),这样你就知道插入的内容正是你在调试中看到的内容:

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

您正在使用错误的格式标志。 %d是整数,使用%f作为浮点数。