十进制零填充

3 投票
8 回答
7374 浏览
提问于 2025-04-16 16:14

我需要把小数以价格的格式输出,

也就是说,

10 = 10.00
11.1 = 11.10

我该如何使用decimal.Decimal类来实现这个呢?

pad_zero(Decimal('10.0'))
>>>Decimal('10.00')

*编辑:*format方法不太符合我的需求,因为我需要把它作为小数传递。我明白我可以在之后再转换回来,但这种来回转换感觉有点不太符合Python的风格。

8 个回答

2

Python的decimal模块文档中,有一个很好的例子,教你怎么把Decimal对象格式化成“货币格式的字符串”。

我有点惊讶,这个过程竟然这么麻烦——通常在Python中,格式化操作都是比较简单的。

3

在进行货币计算时,我更喜欢这样做。

>>> penny=Decimal('0.01')
>>> Decimal('10').quantize(penny)
Decimal('10.00')

虽然说得比较多,但很清楚。

在格式化货币时,我使用 format()

7

试试这个:

Decimal('10.0').quantize(Decimal('1.00'))

撰写回答