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

利息很有趣

学习练习

简介

浮点数

浮点数是指小数点后可以有零位或多位数字的数。例如 -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 位数字(最后一位会被舍入)。

说明

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

  • 余额为负时是 3.213%(会产生负利息)。
  • 余额为正且小于1000美元时是 0.5%。
  • 余额为正、大于或等于1000美元且小于5000美元时是 1.621%。
  • 余额为正且大于或等于5000美元时是 2.475%。

每年,政府允许你把一定比例的钱免税捐给慈善机构。因为你是个好人,如果年底时你的余额为正,你会把免税比例翻倍,并向下取整到最接近的整数美元。你不介意就捐款的后一半缴税。

你有三个任务,每个任务都涉及你的余额和它的利率。

1. 计算利率

实现interestRate函数,根据指定的余额计算利率:

interestRate 200.75m
// => 0.5f

注意,返回的值是 single。

2. 计算利息

实现interest方法,根据指定的余额计算利息:

interest 200.75m
// => 1.00375m

注意,返回的值是 decimal。

3. 计算年度余额更新

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

annualBalanceUpdate 200.75m
// => 201.75375m

注意,返回的值是 decimal。

4. 计算捐款金额

实现amountToDonate函数,根据余额和政府允许的免税比例,计算向慈善机构捐款的金额:

let balance = 550.5m
let taxFreePercentage = 2.5
amountToDonate balance taxFreePercentage
// => 27

注意,返回的值是 int。

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

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

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