浮点数是指小数点后面有零位或多位数字的数。例如-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,除非该浮点数满足以下条件之一:
float32 的变量,或者float32 的函数返回,或者float32() 函数。[math 包]包含许多有用的数学函数。
在这个练习中,你将处理储蓄账户。 每年,储蓄账户的余额都会根据利率更新。 银行给你的利率取决于你账户里的金额(也就是余额):
0美元时为 3.213%(余额会变得更负)。0美元且低于1000美元时为 0.5%。1000美元且低于5000美元时为 1.621%。5000美元时为 2.475%。本练习共有四个任务,每个任务都会处理你的余额及其利率。
实现InterestRate()函数,根据给定的余额计算利率:
InterestRate(200.75)
// => 0.5
注意,返回的值是float32类型。
实现Interest()函数,根据给定的余额计算利息:
Interest(200.75)
// => 1.003750
注意,返回的值是float64类型。
实现AnnualBalanceUpdate()函数,计算年度余额更新,并考虑利率:
AnnualBalanceUpdate(200.75)
// => 201.75375
注意,返回的值是float64类型。
实现YearsBeforeDesiredBalance()函数,计算达到目标余额所需的最少年数,同时考虑到每年都会把利息加到余额上。
也就是说,一年后的余额是:起始余额 + 起始余额的利息。
第二年后的余额是:一年后的余额 + 一年后余额的利息。
依此类推,直到当年的余额大于或等于目标余额。
balance := 200.75
targetBalance := 214.88
YearsBeforeDesiredBalance(balance, targetBalance)
// => 14
注意,返回的值是int类型。