python - 是否有更具可读性或 Pythonic 的方式将 Decimal 格式化为 2 位?

标签 python decimal rounding

将小数固定为两位数的语法到底是怎么回事?

>>> from decimal import Decimal
>>> num = Decimal('1.0')
>>> num.quantize(Decimal(10) ** -2) # seriously?!
Decimal('1.00')

有没有更好的方法,一眼看上去不那么深奥? “量化小数”听起来像是《星际迷航》中的技术废话!

最佳答案

使用字符串格式:

>>> from decimal import Decimal
>>> num = Decimal('1.0')
>>> format(num, '.2f')
'1.00'

format() function将字符串格式应用于值。 Decimal() 对象可以像浮点值一样格式化。

您还可以使用它来插入格式化的十进制值是一个更大的字符串:

>>> 'Value of num: {:.2f}'.format(num)
'Value of num: 1.00'

参见 format string syntax documentation .

除非您确切地知道自己在做什么,否则通过量化来扩展有效数字的数量不是可行的方法;量化是会计软件包的专有技术,通常旨在将结果四舍五入到 更少 有效数字。

关于python - 是否有更具可读性或 Pythonic 的方式将 Decimal 格式化为 2 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18834897/

相关文章:

python - 无法根据 pandas 列中的非条件替换字符串

ruby - 我有一个像 30.6355 这样代表钱的数值,如何四舍五入到小数点后两位?

使用枚举常量时出现 C 错误

r - 通过其他数据帧列中最接近的值匹配数据帧中的列

border - 带 CSS 的圆 Angular 梯形

python - 带有注册额外字段的 Django 社交身份验证

python 猜谜游戏练习

python临时更改类默认值

r - 如何将二进制小数转换为 R 中的十进制小数?

sql - 当不需要舍入时使用 LIKE 来匹配 float