學習軌道
/
F#
F#
/
練習
/
利息真有趣
利息真有趣

利息真有趣

學習練習

簡介

浮點數

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

F# 有三種浮點數型別:

  • single:4 位元組(約 6 到 9 位數精確度)。寫成 2.45f。
  • float:8 位元組(約 15 到 17 位數精確度)。這是最常見的型別。寫成 2.45。
  • decimal:16 位元組(28 到 29 位數精確度)。通常用於處理貨幣資料,因為它的精確度能減少捨入誤差。寫成 2.45m。

不同的浮點數型別可以儲存不同數量的小數點後位數,這稱為它的精確度。這表示如果試著把 PI 存進 single,只會儲存前 6 到 9 位數(最後一位會被捨入)。

說明

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

  • 餘額為負時為 3.213%(會產生負利息)。
  • 餘額為正且小於1000美元時為 0.5%。
  • 餘額為正、大於或等於1000美元且小於5000美元時為 1.621%。
  • 餘額為正且大於或等於5000美元時為 2.475%。

每年政府都允許你把一部分的錢免稅捐給慈善機構。因為你是個好人,如果到了年底你的餘額是正的,你就把免稅的比例加倍,並向下取整到最接近的整數美元。捐贈金額的另一半要繳稅,你不介意。

你有三個任務,每個任務都會處理你的餘額和它的利率。

1. 計算利率

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

interestRate 200.75m
// => 0.5f

注意回傳值是single。

2. 計算利息

實作interest方法,根據指定的餘額計算利息:

interest 200.75m
// => 1.00375m

注意回傳值是decimal。

3. 計算年度餘額更新

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

annualBalanceUpdate 200.75m
// => 201.75375m

注意回傳值是decimal。

4. 計算要捐贈多少錢

實作amountToDonate函式,根據餘額以及政府允許的免稅比例,計算要捐給慈善機構多少錢:

let balance = 550.5m
let taxFreePercentage = 2.5
amountToDonate balance taxFreePercentage
// => 27

注意回傳值是int。

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

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

註冊 Exercism,透過 18 個概念148 個練習 和真人引導來學習並精通 F#,全部免費。