Tracks
/
Clojure
Clojure
/
Übungen
/
Zinsen sind interessant
Zinsen sind interessant

Zinsen sind interessant

Lernübung

Einführung

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.

Anleitung

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):

  • -3.213% bei einem negativen Kontostand.
  • 0.5% bei einem Kontostand unter 1000 Dollar.
  • 1.621% bei einem Kontostand ab 1000 Dollar und unter 5000 Dollar.
  • 2.475% bei einem Kontostand ab 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.

1. Berechne den Zinssatz

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.

2. Berechne die jährliche Aktualisierung des Kontostands

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.

3. Berechne, wie viel Geld gespendet werden soll

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.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Clojure Exercism

Bereit, mit Zinsen sind interessant zu starten?

Melde dich bei Exercism an, um Clojure mit 12 Konzepte105 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.