a = 8.8888
使用round 函數
b = round(a,2) # 保留小数点后两位小数,会四舍五入 b 就等于8.89
b= "%.2f"%a # 也会四舍五入
ret1 = Decimal("88.001").quantize(Decimal("0.00")) print(ret1) # 满5进1的写法 from decimal import Decimal, ROUND_HALF_UP res = Decimal(str(11.565)).quantize(Decimal("0.00"),ROUND_HALF_UP)
round()如果只有一個數作為參數,不指定位數的時候,回傳的是一個整數,而且是最靠近的整數
#一般情況是使用四捨五入的規則,但是碰到舍入的後一位為5的情況,如果要取捨的位數前的數是偶數,則直接捨棄,如果奇數這向上取捨
正常的取捨:
##。入的後一位為5的情況: 利用格式化方法特殊情況需要注意的和round 方法一樣 #利用math模組裡ceil和floor方法超過17位的精度分析python預設的是17位元精度,也就是小數點後16位,但是這裡有一個問題,就是當我們的計算需要使用更高的精度(超過16位小數)的時候該怎麼做呢? 高精度使用decimal模組,配合getcontextdecimal 模組預設精度是17位,可以透過修改getcontext().prec 修改精度的值
#
以上是python中小數點後的位數問題如何解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!