トラック
/
C#
C#
/
演習
/
利息は面白い
利息は面白い

利息は面白い

学習演習

はじめに

浮動小数点数

浮動小数点数とは、小数点以下に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);

説明

この演習では、普通預金口座を扱います。預金残高は、毎年、金利に基づいて更新されます。銀行が提示する金利は、口座にあるお金の額(残高)によって決まります。

  • 残高がマイナスの場合は3.213%(残高はさらにマイナスになります)。
  • 1000ドル未満のプラスの残高は0.5%。
  • 1000ドル以上5000ドル未満のプラスの残高は1.621%。
  • 5000ドル以上のプラスの残高は2.475%。

4つのタスクがあり、どれも残高と金利を扱います。

1. 金利を計算する

指定された残高に基づいて金利を計算する、(静的)SavingsAccount.InterestRate()メソッドを実装します。

SavingsAccount.InterestRate(balance: 200.75m)
// 0.5f

戻り値はfloatであることに注意してください。

2. 利息を計算する

指定された残高に基づいて利息を計算する、(静的)SavingsAccount.Interest()メソッドを実装します。

SavingsAccount.Interest(balance: 200.75m)
// 1.00375m

戻り値はdecimalであることに注意してください。

3. 年間の残高更新を計算する

金利を考慮して、更新後の年間残高を計算する、(静的)SavingsAccount.AnnualBalanceUpdate()メソッドを実装します。

SavingsAccount.AnnualBalanceUpdate(balance: 200.75m)
// 201.75375m

戻り値はdecimalであることに注意してください。

4. 目標残高に到達するまでの年数を計算する

毎年複利で利息が付く場合に、目標残高に到達するために必要な最小年数を計算する、(静的)SavingsAccount.YearsBeforeDesiredBalance()メソッドを実装します。

SavingsAccount.YearsBeforeDesiredBalance(balance: 200.75m, targetBalance: 214.88m)
// 14

戻り値はintであることに注意してください。

Note

元金に単利を適用する場合、残高に金利を掛け、その積が利息の額になります。

一方、複利は利息を繰り返し適用することで計算します。 適用のたびに利息の額を計算して元金に加えるので、次の利息計算ではより大きな元金に対して利息が付きます。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
C# Exercism

利息は面白いを始める準備はできましたか?

Exercismに登録すれば、62個のコンセプト178個の演習、そして本物の人間によるメンタリングとともに、C#を学んでマスターできます。すべて無料です。