====== Κάποιες τιμές στον υπολογιστή δεν παριστάνονται επακριβώς ======
ή
====== Η ceil & η floor δίνουν απρόσμενα αποτελέσματα ======
Η αναπαράσταση των πραγματικών αριθμών στον υπολογιστή, επειδή γίνεται με πεπερασμένο πλήθος ψηφίων, προφανώς δεν καλύπτει την πλειονότητα των πραγματικών τιμών. __Αυτό έχει σαν συνέπεια οι τιμές στον υπολογιστή να παριστάνονται σχεδόν πάντα στρογγυλευμένες__ προς την καταλληλότερη εφικτή αναπαράσταση. Αυτό έχει σαν αποτέλεσμα να εισάγεται ένα σφάλμα που ονομάζεται **σφάλμα στρογγύλευσης** (θα μάθετε σχετικά στο κομμάτι της θεωρίας, αλλά μπορείτε να δείτε και ένα άρθρο [[https://en.wikipedia.org/wiki/Round-off_error|εδώ]] - δεν είναι όμως της ώρας).
Αυτό έχει σαν αποτέλεσμα όταν εκτυπώνουμε τις τιμές με την ''printf'' με αρκετά ψηφία να βλέπουμε περιπτώσεις όπως παρακάτω.
printf("%.16lf\n", 10.2);
// 10.1999999999999990
printf("%.16lf\n", 2.2);
// 2.2000000000000002 => ceil = 3
printf("%.16lf\n", 1.8);
// 1.8000000000000000
printf("%.16lf\n", 8. / 4.);
// 2.0000000000000000
printf("%.16lf\n", (10.2 - 2.2) / (2.2 + 1.8));
// 1.9999999999999998 => floor = 1
Και όπως φαίνεται αυτό έχει και σαν αποτέλεσμα, εάν πάνω σε αυτές τις τιμές εφαρμοστούν οι συναρτήσεις ''floor'' ή ''ceil'' να προκύψουν απρόσμενες τιμές. Αυτό όμως είναι ένα εγγενές πρόβλημα στους υπολογιστές, το οποίο όμως ξεφεύγει από τα πλαίσια της ροής της "Εισαγωγής στον προγραμματισμό" του μαθήματός μας.