學習軌道
/
Go
Go
/
練習
/
利息真有趣
利息真有趣

利息真有趣

學習練習

簡介

浮點數是一種小數點後帶有零或多個位數的數字。例如-2.4、0.1、3.14、5.、16.984025和1024.0。

不同的浮點數型別,小數點後能儲存的位數也不同,這就是所謂的精確度。

Go 有兩種浮點數型別:

  • float32:32 位元(約 6 至 9 位數精確度)。
  • float64:64 位元(約 15 至 17 位數精確度)。 這是預設的浮點數型別。

如你所見,這兩種型別能儲存的位數不同。 這表示,如果想在float32裡儲存 PI,只會存下前 6 到 9 位數(最後一位會四捨五入)。

預設情況下,Go 會為浮點數使用float64,除非這個浮點數是:

  1. 被指定給型別為float32的變數,或
  2. 由回傳型別為float32的函式回傳,或
  3. 被當成引數傳給float32()函式。

math套件包含許多實用的數學函式。

說明

在這道練習中,你會處理儲蓄帳戶。 每年,你的儲蓄帳戶餘額會根據它的利率更新。 銀行給你的利率取決於你帳戶裡的金額(也就是餘額):

  • 餘額小於0美元時為 3.213%(餘額會變得更負)。
  • 餘額大於或等於0美元,且小於1000美元時為 0.5%。
  • 餘額大於或等於1000美元,且小於5000美元時為 1.621%。
  • 餘額大於或等於5000美元時為 2.475%。

你有四項任務,每一項都會處理你的餘額和它的利率。

1. 計算利率

實作InterestRate()函式,根據指定的餘額計算利率:

InterestRate(200.75)
// => 0.5

注意,回傳的值是float32。

2. 計算利息

實作Interest()函式,根據指定的餘額計算利息:

Interest(200.75)
// => 1.003750

注意,回傳的值是float64。

3. 計算年度餘額更新

實作AnnualBalanceUpdate()函式,將利率納入考量,計算年度餘額更新:

AnnualBalanceUpdate(200.75)
// => 201.75375

注意,回傳的值是float64。

4. 計算達到目標餘額所需的年數

實作YearsBeforeDesiredBalance()函式,計算達到目標餘額所需的最少年數,並考量到每年利息都會加到餘額上。 這表示一年後的餘額是:起始餘額 + 起始餘額的利息。 兩年後的餘額是:一年後的餘額 + 一年後餘額的利息。 依此類推,直到當年的餘額大於或等於目標餘額。

balance := 200.75
targetBalance := 214.88
YearsBeforeDesiredBalance(balance, targetBalance)
// => 14

注意,回傳的值是int。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Go Exercism

準備好開始 利息真有趣 了嗎?

註冊 Exercism,透過 34 個概念166 個練習 和真人引導來學習並精通 Go,全部免費。