您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python-如何设置小数位格式以始终显示2个小数位?

Python-如何设置小数位格式以始终显示2个小数位?

我想你可能正在使用模块中的Decimal()对象decimal?(如果你需要精确到小数点后两位任意大数的精度,则绝对应该如此,这就是你的问题标题所建议的……)

如果是这样,则文档的“ 十进制常见问题解答”部分将包含一个问题/答案对,这可能对你有用:

问:在具有两位小数位的定点应用程序中,某些输入有很多位,需要四舍五入。其他人不应有多余的数字,需要进行验证。应该使用什么方法

答:quantize()方法四舍五入到固定的小数位数。如果设置了不精确陷阱,则它对于验证也很有用:

>>> 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

一个问题是

问:一旦有了有效的两个位置输入,如何在整个应用程序中保持不变?

如果你需要答案(以及许多其他有用的信息),请参阅docs的上述部分。另外,如果你将Decimals的精度保持在小数点后两位(这意味着将所有数字保持在小数点的左边,而将所有数字保持在小数点的右边,则不再需要其他精度…),然后将它们转换为str可以正常工作:

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

你应该使用新的格式规范来定义应如何表示值:

>>> from math import pi  # pi ~ 3.141592653589793
>>> '{0:.2f}'.format(pi)
'3.14'

该文档有时可能会有些晦涩,因此我建议你使用以下更容易阅读的参考文献:

>>> f'{pi:.2f}'
'3.14'
python 2022/1/1 18:24:45 有174人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶