零基礎學程式設計009:只顯示2位小數
我們仍要繼續解決這個問題:如何用Python列印這篇枯燥的《複利資料表》?
(1+0.01) ^ 1 = 1.01 (1+0.01) ^ 2 = 1.02 (1+0.01) ^ 3 = 1.03 ... ... (1+0.01) ^ 364 = 37.41 (1+0.01) ^ 365 = 37.78
學完《零基礎學程式設計007:FOR迴圈》之後,我們已經可以輸出這樣五行資料:
(1+0.01) ^ 361 = 36.30913774096189 (1+0.01) ^ 362 = 36.672229118371504 (1+0.01) ^ 363 = 37.03895140955522 (1+0.01) ^ 364 = 37.409340923650774 (1+0.01) ^ 365 = 37.78343433288728
但有一個明顯的問題,電腦計算得太太太精確了,每個數後面都拖著10多位的小數,而我們只要兩位小數就夠了,怎麼辦呢?
程式設計新手到這裡可能就束手無策了,此時《“零基礎學程式設計”都需要哪些基礎?》裡提到的2項技能就要發揮作用了。
1)英語基礎
一種容易想到的辦法是對第3位的小數部分進行四捨五入的運算,在英語裡四捨五入叫round,小數在計算機的世界裡經常被稱為浮點數float。
2)搜尋技能
現在需要google出場了,輸入關鍵詞“python round float”:
如果沒有V**,只能用某度試試了,你自己對比一下搜尋結果吧。點選文末的“閱讀原文”到stackoverflow上看看那篇排在第一位的詳細答案有多詳細吧,純英文的。
3)立即到python 的IDLE中試試:
>>> round(36.30913774096189, 2) 36.31 >>> round(36.672229118371504, 2) 36.67
效果不錯,大概意思很容易猜出來,round(x, 2)就是把x這個數保留兩位小數。
4)把第7課《零基礎學程式設計007:FOR迴圈》的程式碼抄過來,稍加修改,在python IDLE環境中執行一下,看看效果:
for i in [361,362,363,364,365] : print( "(1+0.01) ^", i, "=", round(1.01**i, 2) )
小結:
1)英語基礎好絕對大有幫助
2)會用搜索,能夠快速定位到有用的資源,節省大量的時間
3)立即在python IDLE中嘗試,幫助快速理解程式碼的作用
4)知道了round(x, 2)函式的意思
5)多看看資料,實際上round(x)就是四捨五入的取整
6)聯絡到電子表格EXCEL,你也用過ROUND(x)函式吧?道理都是一樣的,許多程式語言中的取整函式都叫round
7)在stackoverflow的原文中還提到了另一種更為通用的解決辦法,是用format函式,這裡先不介紹了
--- END ---