【发布时间】:2012-06-26 05:36:52
【问题描述】:
我在 Python 中有一些 Decimal 实例。我希望将它们格式化为
Decimal('1') => '1.00'
Decimal('12.0') => '12.00'
Decimal('314.1') => '314.10'
Decimal('314.151') => '314.151'
因此确保始终有至少两位小数,可能更多。虽然不乏四舍五入到n 小数位的解决方案,但我找不到确保数字下限的巧妙方法。
我目前的解决方案是计算:
first = '{}'.format(d)
second = '{:.2f}'.format(d)
并取两者中较长的一个。但是,它似乎有些骇人听闻。
【问题讨论】:
-
你的方式对我来说很好。你可以做
max((first, second), key=len)。 -
我假设您的意思是十进制(浮点数)而不是十进制(字符串)。无论哪种方式,您都可以在字符串上调用 float()。
-
十进制,如“从十进制导入十进制”类中,这与浮点数非常不同。
-
明白了。不知道那件事。我的回答还能用吗?