【问题标题】:Python Substituiting a float only giving whole numberPython替换浮点数只​​给出整数
【发布时间】:2011-11-19 06:23:42
【问题描述】:

我正在读取一个 csv 文件并使用以下行提取一条数据:

x = float(node[1])

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

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

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

输出将是 &lt;node version="0" lon="153"&gt; 。我当然想要值 153.018848。

我忽略了什么?

提前致谢。

【问题讨论】:

    标签: python variables floating-point arguments


    【解决方案1】:

    你忽略了%d is for integers.请改用%f

    【讨论】:

    • 哇,我不知道有什么不同。我一直认为这是一些随意的字母。无论如何,它有效!谢谢。
    【解决方案2】:

    你想用 %f 替换你的 %d,问题解决了 ;)

    见: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})
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2018-10-09
        • 1970-01-01
        • 1970-01-01
        • 2017-07-26
        • 2020-07-26
        • 2019-05-10
        • 2022-11-21
        • 1970-01-01
        • 2017-10-14
        相关资源
        最近更新 更多