Περίεργη στρογγυλοποίηση

Ξεκίνησε από Γιαννούλης Γιώργος, 01 Ιουν 2010, 12:54:06 ΠΜ

« προηγούμενο - επόμενο »

Γιαννούλης Γιώργος

Στην γλωσσομάθεια δοκιμάστε το παρακάτω με τις 3 αυτές διαφορετικές τιμές για το χ.
Πίστευα οτι όσο μεγαλώνουμε το πλήθος των δεκαδικών κάποτε μπορεί ο υπολογιστής να το θεωρήσει ίσο.
Αλλά να θεωρήσει οτι το 5.99... είναι μεγαλύτερο απο το 6 δεν το περίμενα...

Πρόγραμμα Περίεργο
Μεταβλητες
  Πραγματικές :χ,υ
Αρχή
  χ <-- 5.999999999999999999999999999
  !χ <-- 5.999999999999999999
  !χ <-- 5.9999999999999999999
  υ <-- 6
  Αν χ>υ τότε
    Γράψε '1'
  Αλλιώς_αν χ=υ τότε
    Γράψε '2'
  Αλλιώς
    Γράψε '3'
  Τέλος_αν
Τέλος_προγράμματος Περίεργο

michaeljohn

Μόλις το είδα ...
1 !!!
Δηλαδή; 5.999 > 6 !!!!!

Γιαννούλης Γιώργος

Το καταφέραμε και αυτό στην πληροφορική...

michaeljohn

Και μιλάμε τόσο πολύ για στατικούς και δυναμικούς πίνακες...
Εδώ ανατρέπονται τα πάντα όλα..

alkisg

Όποιος ενδιαφέρεται μπορεί να διαβάσει σχετικά στη βοήθεια του Διερμηνευτή,
https://alkisg.mysch.gr/Βοήθεια/#epilogesGlwssa,
και συγκεκριμένα την επιλογή «Στρογγυλοποίηση πραγματικών σε συγκρίσεις στο δεκαδικό», όπου υλοποιείται ένας τρόπος με τον οποίο αποφεύγεται αυτό το πρόβλημα.

Γιαννούλης Γιώργος

Πολύ ενδιαφέρουσα σελίδα γενικότερα, όχι μόνο όσον αφορά το θέμα.
Αλλά και πάλι δεν εξηγείτε το γιατι βγαινει το 5.99999999999999999999999 > 6.
Αφού κάνει στρογγυλοποιήση στρογγυλοποίηση στα 8 ψηφία, τότε με λιγότερα από 8 ψηφία θα βγάζει ένα αποτέλεσμα και με περισσότερα άλλο, συνολικά 2 διαφορετικά αποτελέσματα όχι 3...

Το παραπάνω το πάτησε (μαλλον για πλάκα) ένας μαθητής όταν κάναμε δομές επιλογής και με ψιλοέστειλε.

1 ερμηνεία πιθανή που είπα στον μαθητή (αλλά πιθανώς λανθασμένη  :( ) είναι ότι για να αποφύγουν το πρόβλημα προσθέτουν τον μικρότερο δυνατό θετικο αριθμό στο 5.9999999999999 και ελέγχουν και αυτήν την ισότητα, το οποίο μπορεί μετά να βγάζει οτι είναι μεγαλύτερο από το 6.

Αλλά αυτό ήταν μία εικασία...