python中format函數與round函數的區別

前言

在對數據進行處理時我們常常會用到format與round函數。二者都能保留若幹位小數,但在處理過程上稍有不同。

不同之處

返回類型不同:format函數進行格式化後返回結果的數據類型是str字符串,round函數返回結果的數據類型是float浮點型

進位不同:保留若幹位小數時,format遵循的是四舍五入原則,而round並不遵循該原則,round進位原則為四舍六入次偶進

位數保留不同:規定如保留6位小數,format函數輸出結果小數點後面就是保留6位小數,而round函數稍微靈活點,它會把後面0結尾的小數都去掉,即保留非0部分。

功能不同:round函數主要作用於浮點型數據用於保留若幹小數,format函數不僅僅能夠保留若幹小數,它主要功能是格式化字符串,自定義輸出字符串。

round函數

進位原則

何為四舍六入次偶進?看最後一位數,如果最後一位數小於等於4那麼舍去,如果最後一位數大於等於6則進一位;如果最後一位數是5時,就要分情況討論:如果倒數第二位是偶數則進一位,奇數的話舍去。

示例

>>> round(2.674,2)  # 參數為2,則保留兩位小數,看第三位小數,如果小於等於4則舍去 
2.67
>>> round(2.645,2)  # 等於5的話看倒數第二位,4是偶數, 次偶進,則進一位
2.65
>>> round(2.655,2)  # 5是奇數,次偶進,所以舍去
2.65
>>> round(2.675,2)
2.67
>>> round(2.685,2)
2.69
>>> round(2.695,2)
2.69
>>> round(2.676,2)  # 第三位小數大於等於6,所以進一位
2.68
>>> type(round(2.674,2))  # 結果是浮點型
<class 'float'>
>>> round(3.677,6)  # 當規定保留小數超過實際小數位數時,僅保留非零部分
3.677

format函數

format函數功能強大,書寫格式多種多樣,我們結合示例具體說明一下運算過程。

示例

>>> format('2.674','.2f')   # 使用這種方法保留小數時,第一個參數不可是字符串類型
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    format('2.674','.2f')
ValueError: Unknown format code 'f' for object of type 'str'
>>> format(2.674,'.2f')  # 正確格式   '.2f'表示保留小數點後兩位
'2.67'
>>> format(3.677,'.6f')  # 規定保留幾位小數就會保留幾位小數 
'3.677000'
>>> print("lishuaige就是%.3f啊" % 6.66555)  # 定點數字格式化輸出
lishuaige就是6.666啊
>>> print("lishuaige就是{:.3f}啊".format(6.66555))
lishuaige就是6.666啊

總結

到此這篇關於python中format函數與round函數的區別的文章就介紹到這瞭,更多相關python format和round函數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: