溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python默認保留幾位小數的方法

發布時間:2020-07-27 09:50:29 來源:億速云 閱讀:999 作者:清晨 欄目:編程語言

小編給大家分享一下python默認保留幾位小數的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

處理一個數據文件,發現數據不一致,小數點后有三位、四位、六位、更多位。部分還進行四舍五入。

需要對數據文件進行處理。如果有效位超過6位,則四舍五入。如果小于6位,則保持原來的數字不變。

考慮兩種情況:

小數點后無數字:判斷數字有效位(len(str(num))-1)是否超過6,超過則通過整除去尾,沒有則返回

小數點后有數字:判斷數字有效位(len(str(num))-1)是否超過6,超過則四舍五入round(f, n - len(str(int(f)))),沒有則返回。

代碼:

def format(f, n):
    if round(f)==f:
        m = len(str(f))-1-n
        if f/(10**m) ==0.0:
            return f
        else:
            return float(int(f)/(10**m)*(10**m))
    return round(f, n - len(str(int(f)))) if len(str(f))>n+1 else f

注意:

round不是簡單的四舍五入

round()如果只有一個數作為參數,不指定位數的時候,返回的是一個整數,而且是最靠近的整數(這點上類似四舍五入)。但是當出

現.5的時候,兩邊的距離都一樣,round()取靠近的偶數,這就是為什么round(2.5) = 2。當指定取舍的小數點位數的時候,一般情況也是

使用四舍五入的規則,但是碰到.5的這樣情況,如果要取舍的位數前的小樹是奇數,則直接舍棄,如果偶數這向上取舍??聪旅娴氖纠?/p>

>>> round(2.635, 2)
2.63
>>> round(2.645, 2)
2.65
>>> round(2.655, 2)
2.65
>>> round(2.665, 2)
2.67
>>> round(2.675, 2)
2.67

看完了這篇文章,相信你對python默認保留幾位小數的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女