浮點數是帶有小數點後零或多個位數的數字。例如-2.4、0.1、3.14、16.984025和1024.0。
不同的浮點數型別可以儲存不同數量的小數點後位數,這就是所謂的精確度。
C# 有三種浮點數型別:
float:4 位元組(約 6 到 9 位精確度)。寫作2.45f。double:8 位元組(約 15 到 17 位精確度)。這是最常見的型別。寫作2.45或2.45d。decimal:16 位元組(28 到 29 位精確度)。通常在處理貨幣資料時使用,因為它的精確度能降低捨入誤差的機率。寫作2.45m。如你所見,每種型別可以儲存不同數量的位數。舉例來說,試著把 PI 存進float,只會儲存前 6 位小數(最後儲存的那一位會四捨五入)。
while迴圈在這個練習中,你可能會想使用迴圈。在 C# 中有幾種寫迴圈的方式,不過在這裡while迴圈最合適:
int x = 23;
while (x > 10)
{
// Execute logic if x > 10
x = x - 2;
}
do/while迴圈如果迴圈中的程式碼至少要執行一次,可以使用do/while迴圈:
int x = 23;
do
{
// Execute body, repeating only if x > 10
x = x - 2;
} while (x > 10);
在這個練習中,你會操作儲蓄帳戶。你的儲蓄帳戶餘額每年都會根據利率更新。銀行給你的利率取決於你帳戶裡的金額(也就是餘額):
1000美元時為 0.5%。1000美元且低於5000美元時為 1.621%。5000美元時為 2.475%。你有四個任務,每個任務都會處理你的餘額和它的利率。
實作(static)SavingsAccount.InterestRate()方法,根據指定的餘額計算利率:
SavingsAccount.InterestRate(balance: 200.75m)
// 0.5f
請注意,回傳的值是float。
實作(static)SavingsAccount.Interest()方法,根據指定的餘額計算利息:
SavingsAccount.Interest(balance: 200.75m)
// 1.00375m
請注意,回傳的值是decimal。
實作(static)SavingsAccount.AnnualBalanceUpdate()方法,計算更新後的年度餘額,並將利率納入考量:
SavingsAccount.AnnualBalanceUpdate(balance: 200.75m)
// 201.75375m
請注意,回傳的值是decimal。
實作(static)SavingsAccount.YearsBeforeDesiredBalance()方法,在每年複利的情況下,計算達到目標餘額所需的最少年數:
SavingsAccount.YearsBeforeDesiredBalance(balance: 200.75m, targetBalance: 214.88m)
// 14
請注意,回傳的值是int。
對本金套用單利時,會將餘額乘上利率,兩者相乘的乘積就是利息金額。
另一方面,複利則是定期套用利息。 每次套用時,都會計算出利息金額並加到本金上,讓後續的利息計算以更大的本金為基礎。