Un numero in virgola mobile è un numero con zero o più cifre dopo il separatore decimale. Alcuni esempi sono -2.4, 0.1, 3.14, 16.984025 e 1024.0.
F# ha tre tipi in virgola mobile:
single: 4 byte (precisione di circa 6-9 cifre). Si scrive 2.45f.float: 8 byte (precisione di circa 15-17 cifre). È il tipo più comune. Si scrive 2.45.decimal: 16 byte (precisione di 28-29 cifre). Si usa normalmente quando si lavora con dati monetari, perché la sua precisione comporta meno errori di arrotondamento. Si scrive 2.45m.Tipi diversi in virgola mobile possono memorizzare un numero diverso di cifre dopo il separatore decimale: è quella che viene chiamata precisione. Questo significa che, provando a memorizzare PI in un single, verranno memorizzate soltanto le prime 6-9 cifre (con l'ultima cifra arrotondata).
In questo esercizio lavorerai con i conti di risparmio. Ogni anno, il saldo del tuo conto di risparmio viene aggiornato in base al suo tasso di interesse. Il tasso di interesse che la tua banca ti offre dipende dalla quantità di denaro presente sul conto (il suo saldo):
1000 dollari.1000 dollari e inferiore a 5000 dollari.5000 dollari.Ogni anno il governo ti permette di donare in beneficenza una percentuale del tuo denaro, esentasse. Dato che sei una brava persona, se alla fine dell'anno il tuo saldo risulta positivo prendi la percentuale esentasse e la raddoppi, arrotondando per difetto al dollaro intero più vicino. Non ti dispiace pagare le tasse sulla seconda metà della donazione.
Hai tre attività, ognuna delle quali riguarderà il tuo saldo e il suo tasso di interesse.
Implementa la funzione interestRate per calcolare il tasso di interesse in base al saldo indicato:
interestRate 200.75m
// => 0.5f
Nota che il valore restituito è un single.
Implementa il metodo interest per calcolare l'interesse in base al saldo indicato:
interest 200.75m
// => 1.00375m
Nota che il valore restituito è un decimal.
Implementa la funzione annualBalanceUpdate per calcolare l'aggiornamento annuale del saldo, tenendo conto del tasso di interesse:
annualBalanceUpdate 200.75m
// => 201.75375m
Nota che il valore restituito è un decimal.
Implementa la funzione amountToDonate per calcolare quanti soldi donare in beneficenza, in base al saldo e alla percentuale esentasse che il governo concede:
let balance = 550.5m
let taxFreePercentage = 2.5
amountToDonate balance taxFreePercentage
// => 27
Nota che il valore restituito è un int.
Iscriviti a Exercism per imparare e padroneggiare F# con 18 concetti148 esercizi e il mentoring di persone reali, tutto gratis.