首頁 > 後端開發 > Python教學 > python中小數點後的位數問題如何解決

python中小數點後的位數問題如何解決

王林
發布: 2023-05-15 17:10:08
轉載
1844 人瀏覽過

    python中小數點後的位元數

    第一種方法

    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)
    登入後複製

    python小數點位數控制

    利用python內建的round()函數

    round()如果只有一個數作為參數,不指定位數的時候,回傳的是一個整數,而且是最靠近的整數

    #一般情況是使用四捨五入的規則,但是碰到舍入的後一位為5的情況,如果要取捨的位數前的數是偶數,則直接捨棄,如果奇數這向上取捨

    正常的取捨:

    python中小數點後的位數問題如何解決

    ##。入的後一位為5的情況:

    python中小數點後的位數問題如何解決

    利用格式化方法

    特殊情況需要注意的和round 方法一樣

    python中小數點後的位數問題如何解決

    python中小數點後的位數問題如何解決

    #利用math模組裡ceil和floor方法

    • math模組的ceil(x):取大於或等於x的最小整數

    • math模組的floor(x):取小於或等於x的最大整數

    python中小數點後的位數問題如何解決

    超過17位的精度分析

    python預設的是17位元精度,也就是小數點後16位,但是這裡有一個問題,就是當我們的計算需要使用更高的精度(超過16位小數)的時候該怎麼做呢?

    高精度使用decimal模組,配合getcontext

    decimal 模組預設精度是17位,可以透過修改getcontext().prec 修改精度的值

    python中小數點後的位數問題如何解決

    python中小數點後的位數問題如何解決#

    以上是python中小數點後的位數問題如何解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    相關標籤:
    來源:yisu.com
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    最新問題
    python - ubuntu16.04 lxml的報錯
    來自於 1970-01-01 08:00:00
    0
    0
    0
    有辦法在PHP裡寫Python嗎?
    來自於 1970-01-01 08:00:00
    0
    0
    0
    python scrapy爬蟲錯誤
    來自於 1970-01-01 08:00:00
    0
    0
    0
    python相關問題求解決,有償
    來自於 1970-01-01 08:00:00
    0
    0
    0
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板