Python:将浮点数转换为字符串时,强制小数点后保留两位零

5
我正在尝试将python浮点数转换为字符串后保留两个零,例如:150.00而不是150.0。由于我在python方面缺乏经验,因此只能想到一种暴力方法来实现。是否有内置功能可完成此操作?谢谢。
2个回答

8
>>> "%.02f" % 150
'150.00'

编辑:刚刚测试过,实际上在3.2中可以工作。它也适用于旧版本的Python,而格式化方法则不适用——然而,在可能的情况下升级并使用格式化方法是首选。如果无法升级,请使用此方法。


这在Python 3.x中也可以工作。它甚至没有被弃用,尽管新的格式语法是推荐的。 - Sven Marnach
是的,我刚测试了3.2版本,因为我不确定。我个人更喜欢这种数字格式,因为它看起来更加清晰。虽然我想这可能是一个我应该改掉的习惯...此外,这种方法适用于旧版本的Python,而格式则不适用于旧版本——在你被困在Python2.4等系统上时非常有用。 - TyrantWave
只要它没有被弃用并且符合您的需求,我认为没有太多理由放弃使用旧语法。 - Sven Marnach
谢谢,我想我正在使用相当老的Python版本,但这个可以工作! - moka

7
>>> "{0:.2f}".format(150)
'150.00'

或者

>>> format(150, ".2f")
'150.00'

如果你想了解字符串格式化的介绍,请参考Python教程和其中提供的链接。


我遇到了错误“AttributeError: 'str' object has no attribute 'format'”,我需要导入特殊的东西吗?谢谢! - moka
1
你似乎在使用相当旧的Python版本。这种语法是在Python 2.6中引入的。 - Sven Marnach
如果你使用的是旧版本的Python,那么它是没有format方法的,比如2.4版。 如果你无法升级Python版本,那么我发布的方法会起作用,尽管最好还是升级并使用新版本的Python。 - TyrantWave
啊,我已经明白了,谢谢。我想我正在运行一个不支持格式的 Python 版本。 - moka
不要忘记字段编号以实现Python 2.6的兼容性 ;) https://dev59.com/Pm035IYBdhLWcg3wZvFg - baptx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接