zoukankan      html  css  js  c++  java
  • python 使用demical模块四舍五入

    前言:

    断言部分需要用到四舍五入,首先使用的是python自带的round(),做四舍五入进位处理,但使用过程中,发现round似乎是当保留小数位的最后一位是偶数,和保留小数位后一位为5时,就不进位。

    一、round()方法

    在数值3092.145,2保留两位小数时,期望返回的是3092.15,实际返回3092.14,不是期望的结果

     二、decimal模块的quantize()方法

    需要注意的时,quantize方法有很多种的rounding,四舍五入的模式,这个决定了,返回的结果是否是期望的

    想要的结果,保留两位小数,不管小数位第二位是否为偶数,后一位是5时,都要进位

    res = Decimal('3209.145').quantize(Decimal('0.00'), rounding="ROUND_HALF_UP")

            try:
                result = Decimal(number).quantize(Decimal('0.00'), rounding="ROUND_HALF_UP")
                return result
            except Exception as e:
                mylog.exception("decimal_round_四舍五入方法出错,请检查{0}".format(e))
    

    参考文章:https://zhuanlan.zhihu.com/p/115431517

  • 相关阅读:
    梦断代码阅读笔记02
    第三周
    第二周
    《大道至简》阅读笔记
    暑假第一周
    hdu-1237简单计算器(栈的运用)
    玩骰子(概率,暴力)
    hdu-5568SUM (dp)
    codeforce-600C. Make Palindrome(贪心)
    codeforce-601A. The Two Routes(最短路)
  • 原文地址:https://www.cnblogs.com/cuitang/p/15434083.html
Copyright © 2011-2022 走看看