轨道
/
Go
Go
/
练习
/
利息很有趣
利息很有趣

利息很有趣

学习练习

简介

浮点数是指小数点后面有零位或多位数字的数。例如-2.4、0.1、3.14、5.、16.984025和1024.0。

不同的浮点类型能存储的小数点后位数不同,这称为它的精度。

Go 有两种浮点类型:

  • float32:32 位(精度约为 6 到 9 位数字)。
  • float64:64 位(精度约为 15 到 17 位数字)。 这是默认的浮点类型。

可以看到,这两种类型能存储的位数不同。 这意味着,用 float32 存储 PI 时,只会存下前 6 到 9 位数字(最后一位会被舍入)。

默认情况下,Go 会对浮点数使用 float64,除非该浮点数满足以下条件之一:

  1. 赋值给类型为 float32 的变量,或者
  2. 从返回类型为 float32 的函数返回,或者
  3. 作为实参传给 float32() 函数。

[math 包]包含许多有用的数学函数。

说明

在这个练习中,你将处理储蓄账户。 每年,储蓄账户的余额都会根据利率更新。 银行给你的利率取决于你账户里的金额(也就是余额):

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

本练习共有四个任务,每个任务都会处理你的余额及其利率。

1. 计算利率

实现InterestRate()函数,根据给定的余额计算利率:

InterestRate(200.75)
// => 0.5

注意,返回的值是float32类型。

2. 计算利息

实现Interest()函数,根据给定的余额计算利息:

Interest(200.75)
// => 1.003750

注意,返回的值是float64类型。

3. 计算年度余额更新

实现AnnualBalanceUpdate()函数,计算年度余额更新,并考虑利率:

AnnualBalanceUpdate(200.75)
// => 201.75375

注意,返回的值是float64类型。

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

实现YearsBeforeDesiredBalance()函数,计算达到目标余额所需的最少年数,同时考虑到每年都会把利息加到余额上。 也就是说,一年后的余额是:起始余额 + 起始余额的利息。 第二年后的余额是:一年后的余额 + 一年后余额的利息。 依此类推,直到当年的余额大于或等于目标余额。

balance := 200.75
targetBalance := 214.88
YearsBeforeDesiredBalance(balance, targetBalance)
// => 14

注意,返回的值是int类型。

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

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

注册 Exercism,借助 34 个概念166 个练习 和真人导师指导,学习并掌握 Go,全部免费。