takatakaros Δημοσ. 17 Οκτωβρίου 2017 Δημοσ. 17 Οκτωβρίου 2017 Καλησπέρα σας! Έχω το παρακάτω scriptακι σε Matlab : n = [1,2,5,1000]; H = zeros(4,1); for j=1:4 for i=1:n(j) H(j,1) = H(j,1) + (1/i) ; end display ( H(j,1)); H(j,1) = round( H(j,1),4,'significant' ); end display ( H ) ; Τα αποτελέσματα που βγάζει είναι τα παρακάτω: 1 1.5000 2.2833 7.4855 H = 1.0000 1.5000 2.2830 7.4850Τα 3 πρώτα τα στρογγυλοποιεί μια χαρά. Το θέμα μου είναι ότι το 7.4855 ενώ έπρεπε να το στρογγυλοποίησει σε 7.486 το στρογγυλοποιεί σε 7.485. Το περίεργο είναι ότι άμα τρέξω μόνο την εντολή round( 7.4850,4,'significant' ) στην κονσόλα , βγάζει το σωστό αποτέλεσμα 7.486 !!!Τι ακριβώς γίνεται? Σας ευχαριστώ!
Metal Heart Δημοσ. 17 Οκτωβρίου 2017 Δημοσ. 17 Οκτωβρίου 2017 Πριν τη στρογγυλοποίηση ο τέταρτος αριθμός με ακριβεία πέντε δεκαδικών ψηφίων είναι 7.48547. Στην έξοδο σου βγαίνει ήδη στρογγυλοποιημένος στον τέταρτο δεκαδικό δηλαδή 7.4855. Στη συνέχεια στρογγυλοποιείται στο τέταρτο ψηφίο (στο τρίτο δεκαδικό) δηλαδή στο 5 και αφού ο διπλανός του είναι το 4 (και όχι το 5 όπως φαίνεται στην έξοδο) προκύπτει το 7.4850. 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα