Ένας αριθμός κινητής υποδιαστολής είναι ένας αριθμός με μηδέν ή περισσότερα ψηφία μετά την υποδιαστολή. Παραδείγματα είναι τα -2.4, 0.1, 3.14, 16.984025 και 1024.0.
Η F# έχει τρεις τύπους κινητής υποδιαστολής:
single: 4 byte (ακρίβεια ~6-9 ψηφίων). Γράφεται ως 2.45f.float: 8 byte (ακρίβεια ~15-17 ψηφίων). Αυτός είναι ο πιο συνηθισμένος τύπος. Γράφεται ως 2.45.decimal: 16 byte (ακρίβεια 28-29 ψηφίων). Χρησιμοποιείται συνήθως όταν δουλεύεις με νομισματικά δεδομένα, καθώς η ακρίβειά του οδηγεί σε λιγότερα σφάλματα στρογγυλοποίησης. Γράφεται ως 2.45m.Διαφορετικοί τύποι κινητής υποδιαστολής μπορούν να αποθηκεύσουν διαφορετικό αριθμό ψηφίων μετά το διαχωριστικό ψηφίων - αυτό αναφέρεται ως η ακρίβειά του. Αυτό σημαίνει ότι αν προσπαθήσεις να αποθηκεύσεις το PI σε ένα single, θα αποθηκευτούν μόνο τα πρώτα 6 έως 9 ψηφία (με στρογγυλοποίηση του τελευταίου ψηφίου).
Σε αυτή την άσκηση θα δουλέψεις με λογαριασμούς ταμιευτηρίου. Κάθε χρόνο, το υπόλοιπο του λογαριασμού ταμιευτηρίου σου ενημερώνεται με βάση το επιτόκιό του. Το επιτόκιο που σου δίνει η τράπεζά σου εξαρτάται από το χρηματικό ποσό που υπάρχει στον λογαριασμό σου (το υπόλοιπό του):
1000 δολάρια.1000 δολάρια και μικρότερο από 5000 δολάρια.5000 δολάρια.Κάθε χρόνο το κράτος σου επιτρέπει να δωρίσεις ένα ποσοστό των χρημάτων σου σε φιλανθρωπικό σκοπό, αφορολόγητα. Επειδή είσαι καλός άνθρωπος, αν το υπόλοιπό σου καταλήξει θετικό στο τέλος του χρόνου, παίρνεις το αφορολόγητο ποσοστό και το διπλασιάζεις, στρογγυλοποιώντας προς τα κάτω στο πλησιέστερο ακέραιο δολάριο. Δεν σε πειράζει να πληρώσεις φόρο για το δεύτερο μισό της δωρεάς.
Έχεις τρεις εργασίες, καθεμία από τις οποίες ασχολείται με το υπόλοιπό σου και το επιτόκιό του.
Υλοποίησε τη συνάρτηση interestRate για να υπολογίσεις το επιτόκιο με βάση το καθορισμένο υπόλοιπο:
interestRate 200.75m
// => 0.5f
Σημείωσε ότι η τιμή που επιστρέφεται είναι single.
Υλοποίησε τη μέθοδο interest για να υπολογίσεις τον τόκο με βάση το καθορισμένο υπόλοιπο:
interest 200.75m
// => 1.00375m
Σημείωσε ότι η τιμή που επιστρέφεται είναι decimal.
Υλοποίησε τη συνάρτηση annualBalanceUpdate για να υπολογίσεις την ετήσια ενημέρωση του υπολοίπου, λαμβάνοντας υπόψη το επιτόκιο:
annualBalanceUpdate 200.75m
// => 201.75375m
Σημείωσε ότι η τιμή που επιστρέφεται είναι decimal.
Υλοποίησε τη συνάρτηση amountToDonate για να υπολογίσεις πόσα χρήματα θα δωρίσεις σε φιλανθρωπικούς σκοπούς με βάση το υπόλοιπο και το αφορολόγητο ποσοστό που επιτρέπει το κράτος:
let balance = 550.5m
let taxFreePercentage = 2.5
amountToDonate balance taxFreePercentage
// => 27
Σημείωσε ότι η τιμή που επιστρέφεται είναι int.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις F# με 18 έννοιες148 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.