Un numero in virgola mobile è un numero con zero o più cifre dopo il separatore decimale.
Esempi sono -2.4, 0.1, 3.14, 5., 16.984025 e 1024.0.
Tipi diversi di numeri in virgola mobile possono memorizzare un numero diverso di cifre dopo il separatore decimale: questa caratteristica si chiama precisione.
Go ha due tipi di numeri in virgola mobile:
float32: 32 bit (circa 6-9 cifre di precisione).float64: 64 bit (circa 15-17 cifre di precisione).
È il tipo in virgola mobile predefinito.Come si può vedere, entrambi i tipi possono memorizzare un numero diverso di cifre.
Questo significa che se proviamo a memorizzare PI in un float32, verranno memorizzate soltanto le prime 6-9 cifre (con l'ultima cifra che viene arrotondata).
Per impostazione predefinita, Go usa float64 per i numeri in virgola mobile, a meno che il numero in virgola mobile non sia:
float32, oppurefloat32, oppurefloat32().Il math package contiene molte funzioni matematiche utili.
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 tuo conto (il suo saldo):
0 dollari (il saldo diventa più negativo).0 dollari e inferiore a 1000 dollari.1000 dollari e inferiore a 5000 dollari.5000 dollari.Hai quattro 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.75)
// => 0.5
Nota che il valore restituito è un float32.
Implementa la funzione Interest() per calcolare gli interessi in base al saldo indicato:
Interest(200.75)
// => 1.003750
Nota che il valore restituito è un float64.
Implementa la funzione AnnualBalanceUpdate() per calcolare l'aggiornamento annuale del saldo, tenendo conto del tasso di interesse:
AnnualBalanceUpdate(200.75)
// => 201.75375
Nota che il valore restituito è un float64.
Implementa la funzione YearsBeforeDesiredBalance() per calcolare il numero minimo di anni necessari per raggiungere il saldo desiderato, tenendo conto che ogni anno gli interessi vengono aggiunti al saldo.
Questo significa che il saldo dopo un anno è: saldo iniziale + interessi sul saldo iniziale.
Il saldo dopo il secondo anno è: saldo dopo un anno + interessi sul saldo dopo un anno.
E così via, finché il saldo dell'anno corrente non è maggiore o uguale al saldo obiettivo.
balance := 200.75
targetBalance := 214.88
YearsBeforeDesiredBalance(balance, targetBalance)
// => 14
Nota che il valore restituito è un int.
Iscriviti a Exercism per imparare e padroneggiare Go con 34 concetti166 esercizi e il mentoring di persone reali, tutto gratis.