如何格式化小数点总是显示2位小数?

问题:

我想显示:
 4949.00
和:
 54.954.90
不管十进制的长度,还是小数位都有,我想显示一个2位小数的Decimal,我想以一种有效的方式进行。目的是显示货币价值。
例如,4898489.00

回答:

我想你可能正在使用decimal模块中的Decimal()对象(如果你需要两位数字的精度超过小数点,任意大的数字,你绝对应该是,这就是你的问题的标题建议…)
如果是这样,文档的Decimal FAQ部分有一个可能对您有用的问题/答案对:

Q.在具有两个小数位的定点应用程序中,一些输入有很多地方需要舍入。其他人不应该有多余的数字,需要验证。应该使用什么方法?
A. quantize()方法舍入到固定的小数位数。如果设置了Inexact陷阱,它也可用于验证:

>>> TWOPLACES = Decimal(10) ** -2       # same as Decimal('0.01')
>>> # Round to two places
>>> Decimal('3.214').quantize(TWOPLACES)
Decimal('3.21')
>>> # Validate that a number does not exceed two places
>>> Decimal('3.21').quantize(TWOPLACES, context=Context(traps=[Inexact]))
Decimal('3.21')
>>> Decimal('3.214').quantize(TWOPLACES, context=Context(traps=[Inexact]))
Traceback (most recent call last):
   ...
Inexact: None

下一个问题读

问:一旦我有两个地方输入有效,那么如何在整个应用程序中保持不变呢?

如果您需要答案(以及其他有用的信息),请参阅the aforementioned section of the docs。另外,如果你保持你的Decimal的精度超出小数点的两位数字(意思是尽可能精确地保持小数点左边的所有数字,并且两个位于右边的数字。 。),然后将它们转换为具有str的字符串将会正常工作:

str(Decimal('10'))
# -> '10'
str(Decimal('10.00'))
# -> '10.00'
str(Decimal('10.000'))
# -> '10.000'

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How can I format a decimal to always show 2 decimal places?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 4 = 8