新聞中心
處理一個數(shù)據(jù)文件,發(fā)現(xiàn)數(shù)據(jù)不一致,小數(shù)點后有三位、四位、六位、更多位。部分還進行四舍五入。

10年積累的網(wǎng)站建設、成都網(wǎng)站設計經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有平南免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
需要對數(shù)據(jù)文件進行處理。如果有效位超過6位,則四舍五入。如果小于6位,則保持原來的數(shù)字不變。
考慮兩種情況:
小數(shù)點后無數(shù)字:判斷數(shù)字有效位(len(str(num))-1)是否超過6,超過則通過整除去尾,沒有則返回
小數(shù)點后有數(shù)字:判斷數(shù)字有效位(len(str(num))-1)是否超過6,超過則四舍五入round(f, n - len(str(int(f)))),沒有則返回。
推薦學習《Python教程》
代碼:
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()如果只有一個數(shù)作為參數(shù),不指定位數(shù)的時候,返回的是一個整數(shù),而且是最靠近的整數(shù)(這點上類似四舍五入)。但是當出
現(xiàn).5的時候,兩邊的距離都一樣,round()取靠近的偶數(shù),這就是為什么round(2.5) = 2。當指定取舍的小數(shù)點位數(shù)的時候,一般情況也是
使用四舍五入的規(guī)則,但是碰到.5的這樣情況,如果要取舍的位數(shù)前的小樹是奇數(shù),則直接舍棄,如果偶數(shù)這向上取舍??聪旅娴氖纠?/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
標題名稱:創(chuàng)新互聯(lián)Python教程:python默認保留幾位小數(shù)
文章來源:http://m.fisionsoft.com.cn/article/cdhdhdi.html


咨詢
建站咨詢
