Un nombre à virgule flottante est un nombre comportant zéro ou plusieurs chiffres derrière le séparateur décimal. Par exemple -2.4, 0.1, 3.14, 16.984025 et 1024.0.
Les différents types de nombres à virgule flottante peuvent stocker un nombre différent de chiffres après le séparateur. C'est ce qu'on appelle leur précision. Cela signifie que si l'on essaie de stocker PI dans un single, seuls les 6 à 9 premiers chiffres seront conservés (le dernier chiffre étant arrondi).
En Clojure, les nombres à virgule flottante sont lus comme des Double ; avec le suffixe M, ils sont lus comme des BigDecimal.
Double : 8 octets (~15-17 chiffres de précision). C'est le type le plus courant. Il s'écrit 2.45.BigDecimal : une valeur entière non mise à l'échelle de précision arbitraire et une échelle entière de 32 bits. Il s'écrit 2.45M.Dans cet exercice, on va travailler avec des comptes d'épargne. Chaque année, le solde de ton compte d'épargne est mis à jour en fonction de son taux d'intérêt. Le taux d'intérêt que ta banque t'accorde dépend du montant d'argent présent sur ton compte (son solde) :
1000 dollars.1000 dollars et inférieur à 5000 dollars.5000 dollars.Chaque année, avant que le solde de ton compte d'épargne ne soit mis à jour, le gouvernement te permet de faire un don d'un pourcentage de ton argent à des œuvres caritatives, en franchise d'impôt. Comme tu es une personne sympathique, si ton solde est positif à la fin de l'année, tu fais un don de deux fois ce montant à des œuvres caritatives, arrondi au dollar entier inférieur.
Tu as trois tâches, chacune d'elles portera sur ton solde et son taux d'intérêt.
Implémente la fonction interest-rate pour calculer le taux d'intérêt en fonction du solde spécifié :
(interest-rate 200.75M)
;;=> 0.5
Note que la valeur renvoyée est un Double.
Implémente la fonction annual-balance-update pour calculer la mise à jour annuelle du solde, en tenant compte du taux d'intérêt :
(annual-balance-update 200.75M)
;;=> 201.75375M
Note que la valeur renvoyée est un BigDecimal.
Implémente la fonction amount-to-donate pour calculer combien d'argent donner à des œuvres caritatives en fonction du solde et du pourcentage exonéré d'impôt que le gouvernement autorise :
(def balance 550.5M)
(def tax-free-percentage 2.5)
(amount-to-donate balance tax-free-percentage)
;;=> 27
Note que la valeur renvoyée est un int.
Inscris-toi sur Exercism pour apprendre et maîtriser Clojure avec 12 concepts105 exercices, et un vrai mentorat humain, le tout gratuitement.