Eine Gleitkommazahl ist eine Zahl mit null oder mehr Ziffern hinter dem Dezimaltrennzeichen. Beispiele sind -2.4, 0.1, 3.14, 16.984025 und 1024.0.
F# kennt drei Gleitkommatypen:
single: 4 Byte (~6-9 Stellen Genauigkeit). Wird als 2.45f geschrieben.float: 8 Byte (~15-17 Stellen Genauigkeit). Das ist der häufigste Typ. Wird als 2.45 geschrieben.decimal: 16 Byte (28-29 Stellen Genauigkeit). Wird normalerweise für Geldbeträge verwendet, weil seine Genauigkeit zu weniger Rundungsfehlern führt. Wird als 2.45m geschrieben.Verschiedene Gleitkommatypen können unterschiedlich viele Ziffern nach dem Dezimaltrennzeichen speichern. Das nennt man ihre Genauigkeit. Wenn du also versuchst, PI in einem single zu speichern, werden nur die ersten 6 bis 9 Ziffern gespeichert (wobei die letzte Ziffer gerundet wird).
In dieser Übung arbeitest du mit Sparkonten. Jedes Jahr wird der Kontostand deines Sparkontos anhand seines Zinssatzes aktualisiert. Der Zinssatz, den dir deine Bank gewährt, hängt davon ab, wie viel Geld auf deinem Konto liegt (deinem Kontostand):
1000 Dollar.1000 Dollar und unter 5000 Dollar.5000 Dollar.Jedes Jahr erlaubt dir der Staat, einen prozentualen Anteil deines Geldes steuerfrei an wohltätige Organisationen zu spenden. Weil du ein netter Mensch bist, verdoppelst du diesen steuerfreien Prozentsatz, wenn dein Kontostand am Ende des Jahres positiv ist, und rundest dabei auf den nächsten ganzen Dollar ab. Es macht dir nichts aus, für die zweite Hälfte der Spende Steuern zu zahlen.
Du hast drei Aufgaben, die sich jeweils mit deinem Kontostand und dessen Zinssatz befassen.
Implementiere die Funktion interestRate, um den Zinssatz anhand des angegebenen Kontostands zu berechnen:
interestRate 200.75m
// => 0.5f
Beachte, dass der zurückgegebene Wert vom Typ single ist.
Implementiere die Methode interest, um die Zinsen anhand des angegebenen Kontostands zu berechnen:
interest 200.75m
// => 1.00375m
Beachte, dass der zurückgegebene Wert vom Typ decimal ist.
Implementiere die Funktion annualBalanceUpdate, um die jährliche Aktualisierung des Kontostands unter Berücksichtigung des Zinssatzes zu berechnen:
annualBalanceUpdate 200.75m
// => 201.75375m
Beachte, dass der zurückgegebene Wert vom Typ decimal ist.
Implementiere die Funktion amountToDonate, um anhand des Kontostands und des steuerfreien Prozentsatzes, den der Staat erlaubt, zu berechnen, wie viel Geld du an wohltätige Organisationen spenden sollst:
let balance = 550.5m
let taxFreePercentage = 2.5
amountToDonate balance taxFreePercentage
// => 27
Beachte, dass der zurückgegebene Wert vom Typ int ist.
Melde dich bei Exercism an, um F# mit 18 Konzepte148 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.