1. 程式人生 > >python中的round內建函式

python中的round內建函式

 今天又掃了一遍數字這一章.. 看到了round()函式, 是在python核心程式設計思想的5.6.2節的末尾, 原文如下:

round(flt, ndig=0) 接受一個浮點數 flt 並對其四捨五入,儲存 ndig位小數。
若不提供ndig 引數,則預設小數點後0位。
round()僅用於浮點數。(譯者注:整數也可以, 不過並沒有什麼
實際意義)

其實, 做個實驗就知道, round()對整數也是有用的, 第二個引數ndig是一個相對偏移. 是相對於小數點那個位置來說的, 向右, 也就是小數部分, 正數來表示, 向左, 也就是整數部分, 用負數來表示.

比如:

round(345, -1) = 350.0

round(345, -3) = 0.0

round(345, 0) = 345.0

round(345.2345, 2) = 345.23000000000002

345.2345四捨五入到小數點後兩位, 怎麼會成這樣呢??

這個是精度問題引起的, 不細究. 我們引入decimal模組後, 使用decimal.Decimal(str(round(345.2345, 2)))就可以看出精確的值了.  是Decimal("345.23")...

明天釋出下一集...呵呵, 還是數字相關的....謝謝各位朋友...