轨道
/
C#
C#
/
练习
/
利息很有趣
利息很有趣

利息很有趣

学习练习

简介

浮点数

浮点数是指小数点后有零位或多位数字的数字。例如-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);

说明

在这个练习中,你将和储蓄账户打交道。每年,储蓄账户的余额都会根据利率更新。银行给你的利率取决于你账户里的金额(即余额):

  • 余额为负时为 3.213%(余额会变得更负)。
  • 余额为正且小于1000美元时为 0.5%。
  • 余额为正且大于或等于1000美元、小于5000美元时为 1.621%。
  • 余额为正且大于或等于5000美元时为 2.475%。

一共有四个任务,每个任务都会涉及余额和利率。

1. 计算利率

实现(static)SavingsAccount.InterestRate()方法,根据指定的余额计算利率:

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

注意,返回的值是float。

2. 计算利息

实现(static)SavingsAccount.Interest()方法,根据指定的余额计算利息:

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

注意,返回的值是decimal。

3. 计算年度余额更新

实现(static)SavingsAccount.AnnualBalanceUpdate()方法,计算更新后的年度余额,并考虑利率:

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

注意,返回的值是decimal。

4. 计算达到目标余额所需的年数

实现(static)SavingsAccount.YearsBeforeDesiredBalance()方法,在每年复利的情况下,计算达到目标余额所需的最少年数:

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

注意,返回的值是int。

Note

把单利作用于本金余额时,用余额乘以利率,两者的乘积就是利息金额。

而复利则是按周期反复计息。 每次计息时,先算出利息金额并加到本金余额上,这样后续的利息计算就会基于更大的本金余额。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
C# Exercism

准备好开始 利息很有趣 了吗?

注册 Exercism,借助 62 个概念178 个练习 和真人导师指导,学习并掌握 C#,全部免费。