Python3 round() 函數
描述
round() 方法返回浮點數 x 的四捨五入值,準確的說保留值將保留到離上一位更近的一端(四舍六入)。
精度要求高的,不建議使用該函數。
語法
以下是 round() 方法的語法:
round( x [, n] )
參數
- x -- 數字運算式。
- n -- 表示從小數點位數,其中 x 需要四捨五入,默認值為 0。
返回值
返回浮點數x的四捨五入值。實例
以下展示了使用 round() 方法的實例:
實例
#!/usr/bin/python3
print ("round(70.23456) : ", round(70.23456))
print ("round(56.659,1) : ", round(56.659,1))
print ("round(80.264, 2) : ", round(80.264, 2))
print ("round(100.000056, 3) : ", round(100.000056, 3))
print ("round(-100.000056, 3) : ", round(-100.000056, 3))
print ("round(70.23456) : ", round(70.23456))
print ("round(56.659,1) : ", round(56.659,1))
print ("round(80.264, 2) : ", round(80.264, 2))
print ("round(100.000056, 3) : ", round(100.000056, 3))
print ("round(-100.000056, 3) : ", round(-100.000056, 3))
以上實例運行後輸出結果為:
round(70.23456) : 70 round(56.659,1) : 56.7 round(80.264, 2) : 80.26 round(100.000056, 3) : 100.0 round(-100.000056, 3) : -100.0
看下官網給的一個例子:
>>> round(2.675, 2) 2.67
按我們的想法返回結果應該是 2.68,可結果卻是 2.67,為什麼?
這跟浮點數的精度有關。我們知道在機器中浮點數不一定能精確表達,因為換算成一串 1 和 0 後可能是無限位數的,機器已經做出了截斷處理。那麼在機器中保存的2.675這個數字就比實際數字要小那麼一點點。這一點點就導致了它離 2.67 要更近一點點,所以保留兩位小數時就近似到了 2.67。