트랙
/
F#
F#
/
연습 문제
/
이자는 흥미로워요
이자는 흥미로워요

이자는 흥미로워요

학습 연습 문제

소개

부동소수점 수

부동소수점 수는 소수점 뒤에 자릿수가 0개 이상 있는 수예요. 예를 들면 -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로 써요.

부동소수점 타입마다 소수점 뒤에 저장할 수 있는 자릿수가 달라요. 이를 정밀도라고 해요. 그래서 single에 PI를 저장하려고 하면 처음 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에 가입하고 F# 트랙을 개념 18개연습 문제 148개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.