我是一名有用的助手,可以为您翻译文本。
目标是将十进制数的精度简单地设置为小数点后两位。例如,
生成的输出将是:
显然,我们不能利用十进制上下文的精度,因为这将考虑到所有数字的总数,而不仅仅是小数精度。
我也不感兴趣将 Decimal 转换为 float 来输出其值。Decimal 的整个目的就是避免在浮点数上存储和运行计算。
还有其他解决方案吗?我知道 stack overflow 上有许多类似的问题,但我没有发现它们解决了我所询问的根本问题。
非常感谢!
我花费了无数小时进行研究、阅读、测试,最终感到困惑和沮丧的是 Python 的 Decimal 对象缺乏最基本的概念:将 Decimal 的输出格式化为字符串。
假设我们有一些具有以下值的字符串或 Decimal 对象:
0.0008
11.1111
222.2222
3333.3333
1234.5678
目标是将十进制数的精度简单地设置为小数点后两位。例如,
11.1111
将被格式化为11.11
,而1234.5678
将被格式化为1234.57
。我设想的代码类似于以下代码:import decimal
decimals = [
decimal.Decimal('0.0008'),
decimal.Decimal('11.1111'),
decimal.Decimal('222.2222'),
decimal.Decimal('3333.3333'),
decimal.Decimal('1234.5678'),
]
for dec in decimals:
print dec.as_string(precision=2, rounding=ROUND_HALF_UP)
生成的输出将是:
0.00
11.11
222.22
3333.33
1234.57
显然,我们不能利用十进制上下文的精度,因为这将考虑到所有数字的总数,而不仅仅是小数精度。
我也不感兴趣将 Decimal 转换为 float 来输出其值。Decimal 的整个目的就是避免在浮点数上存储和运行计算。
还有其他解决方案吗?我知道 stack overflow 上有许多类似的问题,但我没有发现它们解决了我所询问的根本问题。
非常感谢!