Python工具 保留小數的指定有效位數

2021-07-11 03:52:43 字數 1058 閱讀 2743

處理乙個資料檔案,發現資料不一致,小數點後有三位、四位、六位、更多位。部分還進行四捨五入。

需要對資料檔案進行處理。如果有效位超過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的這樣情況,如果要取捨的位數前的小樹是奇數,則直接捨棄,如果偶數這向上取捨。看下面的示例:

>>> 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保留指定位數的小數

f 1.23456 print 4f f print 3f f print 2f f 結果 1.2346 1.235 1.23 這個方法會進行四捨五入 print format 1.23456 2f print format 1.23456 3f print format 1.23456 4f 1....

Python保留小數的方法

因總是忘記保留小數的方法,故在此做個總結。方法一 字串格式化 print 2f 1.255 1.25方法二 format函式方法 format函式有兩種寫法 1 使用佔位符 需注意佔位符和冒號不能丟 此方法可以一次輸出多個 print format 1.256,1.2635 1.26,1.2642 ...

python保留兩位小數

使用python內建的round函式 1 in 1 a 5.026 23 in 2 b 5.000 45 in 3 round a,2 6 out 3 5.03 78 in 4 round b,2 9 out 4 5.0 1011 in 5 2f a 12 out 5 5.03 13 14 in 6...