python decimal 精度_将Python Decimal对象格式化为指定精度

我花了无数个小时研究、阅读、测试,最终对Python的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上存储和运行计算。

还有其他的解决方案吗?我知道还有很多关于堆栈溢出的类似问题,但是没有一个问题可以解决我正在询问的底层问题。

非常感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值