开发者社区> 问答> 正文

python如何进行精确的四舍五入?

失败的几种方法

  • 使用"%.2f"
    a = 1.335
    print("%.2f" % a)       # 输出1.33
    
  • 使用round()
    a = 1.335
    print(round(a, 2))     # 输出1.33
    
  • 使用Decimal()
    from decimal import Decimal
    a = 1.335
    print(Decimal(a).quantize(Decimal('0.00')))   #输出1.33
    

怎么让1.335得出1.34 1.4444...5,得出1.5 ?

展开
收起
时光不写博客 2019-08-09 12:08:03 3346 0
2 条回答
写回答
取消 提交回答
  • image.png image.png

    注意写法Decimal("1.335")要有引号,否则还是1.33

    2019-11-05 14:17:44
    赞同 展开评论 打赏
  • 用字符串表示,用 Decimal 类型进行处理

    import decimal
    
    # 修改舍入方式为四舍五入
    decimal.getcontext().rounding = "ROUND_HALF_UP"
    
    # 使用字符串来储存小数不会有精度误差,Decimal可以正确处理这种方法表示的数字
    decimal.Decimal("0.645").quantize(decimal.Decimal("0.00"))
    
    2019-08-16 10:24:05
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载