Eine Gleitkommazahl ist eine Zahl mit null oder mehr Nachkommastellen. Beispiele sind -2.4, 0.1, 3.14, 16.984025 und 1024.0.
Verschiedene Gleitkommatypen können unterschiedlich viele Nachkommastellen speichern. Das nennt man ihre Genauigkeit. Das bedeutet, dass beim Speichern von PI in einem single nur die ersten 6 bis 9 Stellen gespeichert werden (wobei die letzte Stelle gerundet wird).
Gleitkommazahlen werden in Clojure als Doubles gelesen; mit dem Suffix M werden sie als BigDecimals gelesen.
Double: 8 Byte (~15-17 Stellen Genauigkeit). Das ist der häufigste Typ. Geschrieben als 2.45.BigDecimal: Ganzzahliger Wert ohne Skalierung mit beliebiger Genauigkeit und eine 32-Bit-Ganzzahl als Skalierung. Geschrieben als 2.45M.In dieser Übung arbeitest du mit Sparkonten. Jedes Jahr wird der Kontostand deines Sparkontos anhand seines Zinssatzes aktualisiert. Der Zinssatz, den dir deine Bank gibt, hängt von der Höhe des Betrags auf deinem Konto ab (dem Kontostand):
1000 Dollar.1000 Dollar und unter 5000 Dollar.5000 Dollar.Jedes Jahr, bevor der Kontostand deines Sparkontos aktualisiert wird, erlaubt es dir der Staat, einen prozentualen Anteil deines Geldes steuerfrei an wohltätige Organisationen zu spenden. Weil du ein netter Mensch bist, spendest du, wenn dein Kontostand am Ende des Jahres positiv ist, das Doppelte dieses Betrags an wohltätige Organisationen, abgerundet auf den nächsten ganzen Dollar.
Du hast drei Aufgaben, die sich jeweils mit deinem Kontostand und seinem Zinssatz befassen.
Implementiere die Funktion interest-rate, um den Zinssatz anhand des angegebenen Kontostands zu berechnen:
(interest-rate 200.75M)
;;=> 0.5
Beachte, dass der zurückgegebene Wert ein Double ist.
Implementiere die Funktion annual-balance-update, um die jährliche Aktualisierung des Kontostands unter Berücksichtigung des Zinssatzes zu berechnen:
(annual-balance-update 200.75M)
;;=> 201.75375M
Beachte, dass der zurückgegebene Wert ein BigDecimal ist.
Implementiere die Funktion amount-to-donate, um anhand des Kontostands und des steuerfreien Prozentsatzes, den der Staat erlaubt, zu berechnen, wie viel Geld an wohltätige Organisationen gespendet werden soll:
(def balance 550.5M)
(def tax-free-percentage 2.5)
(amount-to-donate balance tax-free-percentage)
;;=> 27
Beachte, dass der zurückgegebene Wert ein int ist.
Melde dich bei Exercism an, um Clojure mit 12 Konzepte105 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.