浮点数是指小数点后可以有零位或多位数字的数。例如 -2.4、0.1、3.14、16.984025 和 1024.0。
F# 有三种浮点类型:
single:4 字节(约 6-9 位精度)。写作 2.45f。float:8 字节(约 15-17 位精度)。这是最常见的类型。写作 2.45。decimal:16 字节(28-29 位精度)。通常用于处理货币数据,因为它的精度能减少舍入误差。写作 2.45m。不同的浮点类型在小数点后能存储的位数不同,这称为精度。这意味着,如果试图把 PI 存进 single,只会存下前 6 到 9 位数字(最后一位会被舍入)。
在这个练习中,你将处理储蓄账户。每年,你的储蓄账户余额都会根据其利率进行更新。银行给你的利率取决于你账户里的金额(也就是余额):
1000美元时是 0.5%。1000美元且小于5000美元时是 1.621%。5000美元时是 2.475%。每年,政府允许你把一定比例的钱免税捐给慈善机构。因为你是个好人,如果年底时你的余额为正,你会把免税比例翻倍,并向下取整到最接近的整数美元。你不介意就捐款的后一半缴税。
你有三个任务,每个任务都涉及你的余额和它的利率。
实现interestRate函数,根据指定的余额计算利率:
interestRate 200.75m
// => 0.5f
注意,返回的值是 single。
实现interest方法,根据指定的余额计算利息:
interest 200.75m
// => 1.00375m
注意,返回的值是 decimal。
实现annualBalanceUpdate函数,计算年度余额更新,并考虑利率:
annualBalanceUpdate 200.75m
// => 201.75375m
注意,返回的值是 decimal。
实现amountToDonate函数,根据余额和政府允许的免税比例,计算向慈善机构捐款的金额:
let balance = 550.5m
let taxFreePercentage = 2.5
amountToDonate balance taxFreePercentage
// => 27
注意,返回的值是 int。