浮動小数点数とは、小数点以下に0桁以上の数字を持つ数のことです。たとえば、-2.4、0.1、3.14、16.984025、1024.0などがあります。
浮動小数点型によって、小数点以下に保持できる桁数は異なります。この桁数のことを精度と呼びます。
C#には3つの浮動小数点型があります。
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ループループの中のコードを必ず1回以上実行したい場合は、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%。4つのタスクがあり、どれも残高と金利を扱います。
指定された残高に基づいて金利を計算する、(静的)SavingsAccount.InterestRate()メソッドを実装します。
SavingsAccount.InterestRate(balance: 200.75m)
// 0.5f
戻り値はfloatであることに注意してください。
指定された残高に基づいて利息を計算する、(静的)SavingsAccount.Interest()メソッドを実装します。
SavingsAccount.Interest(balance: 200.75m)
// 1.00375m
戻り値はdecimalであることに注意してください。
金利を考慮して、更新後の年間残高を計算する、(静的)SavingsAccount.AnnualBalanceUpdate()メソッドを実装します。
SavingsAccount.AnnualBalanceUpdate(balance: 200.75m)
// 201.75375m
戻り値はdecimalであることに注意してください。
毎年複利で利息が付く場合に、目標残高に到達するために必要な最小年数を計算する、(静的)SavingsAccount.YearsBeforeDesiredBalance()メソッドを実装します。
SavingsAccount.YearsBeforeDesiredBalance(balance: 200.75m, targetBalance: 214.88m)
// 14
戻り値はintであることに注意してください。
元金に単利を適用する場合、残高に金利を掛け、その積が利息の額になります。
一方、複利は利息を繰り返し適用することで計算します。 適用のたびに利息の額を計算して元金に加えるので、次の利息計算ではより大きな元金に対して利息が付きます。