1、round()函數四舍五入
1 print(round(10.4)) # ==>10 2 print(round(10.49)) # ==>10 3 print(round(10.5)) # ==>10 4 print(round(10.51)) # ==>11 5 print(round(10.6)) # ==>11 6 print('='*50) 7 print(round(11.4)) # ==>11 8 print(round(11.49)) # ==>11 9 print(round(11.5)) # ==>12 10 print(round(11.51)) # ==>12 11 print(round(11.6)) # ==>12
輸出結果:
10
10
10
11
11
==================================================
11
11
12
12
12
小結:
當個位為奇數,小數部分>=0.5入,其余為舍;
當個位為偶數,小數部分>0.5入,其余為舍。
2、使用decimal模塊
1 import decimal 2 3 x = 10.3456 4 # Context函數,有很多參數,都有默認的值,我們做四舍五入時候,只需要改變兩個參數的值來設置python的context處理環境即可。 5 # 參數1是prec參數,用來顯示最終的數值位數,這個數值位數包含整數部分和小數部分。 6 # 參數2是rounding參數,改為ROUND_HALF_UP作為四舍五入方式。 7 # create_decimal函數,注意參數值是一個字符串,因此需要先將x轉為字符串 8 x1=decimal.Context(prec=4,rounding=decimal.ROUND_HALF_UP).create_decimal(str(x)) 9 print(x1) 10 print(type(x1))
輸出結果:
10.35
<class 'decimal.Decimal'>
3、format()格式化輸出
輸出結果為字符類型的數字
1 x = 10.3456 2 print(format(x,'0.1f')) # ==>10.3 3 print(format(x,'0.2f')) # ==>10.3 4 print(format(x,'0.3f')) # ==>10.3 5 print(type(format(x,'0.1f'))) # ==><class 'str'>
輸出結果:
10.3
10.35
10.346
<class 'str'>
總結:
1、若對四舍五入的結果精度要求較高,建議使用decimal模塊,不建議使用round();
2、若僅僅想格式化輸出數據,format()足矣。