Πώς να χρησιμοποιήσετε το Setprecision στη C++

Pos Na Chresimopoiesete To Setprecision Ste C



Μπορεί να έχετε μάθει και μελετήσει τις τιμές κινητής υποδιαστολής και την επιστημονική σημειογραφία στα μαθηματικά και τη φυσική. Μπορεί επίσης να έχετε μάθει να κάνετε στρογγυλοποίηση σε αριθμούς κινητής υποδιαστολής. Το βοηθητικό πρόγραμμα setprecision στη C++ χρησιμοποιείται συχνά για την αλλαγή της ακολουθίας των αριθμών που εμφανίζονται μέσα σε μια ακολουθία εξόδου ακέραιου αριθμού κινητής υποδιαστολής. Λειτουργεί το ίδιο με τη λειτουργία στρογγυλοποίησης. Αυτή η μέθοδος ορίζεται στην τυπική βιβλιοθήκη . Σε αυτό το σεμινάριο, θα σας δείξουμε πώς να χρησιμοποιήσετε τη συνάρτηση 'setprecision' της C++. Λοιπόν, ας ξεκινήσουμε. Πρέπει να ξεκινήσουμε την εφαρμογή κελύφους του Ubuntu μέσω του «Ctrl+Alt+T» για να δουλέψουμε σε αυτήν. Πρέπει να αρχικοποιήσουμε την εγκατάσταση του μεταγλωττιστή C++, που είναι g++ στην περίπτωσή μας. Έτσι, το apt πακέτο θα χρησιμοποιηθεί για αυτόν τον σκοπό μέχρι στιγμής. Το σύστημα θα εγκαταστήσει το g++ σε λίγα δευτερόλεπτα: $ sudo κατάλληλος εγκαθιστώ g++

Παράδειγμα 01:

Έτσι, ανοίξαμε το αρχείο “new.cc” με την εντολή “nano”. Αυτό το αρχείο δημιουργείται χρησιμοποιώντας το ερώτημα 'touch' του κελύφους. Το αρχείο εκκινείται τώρα στο nano editor ως κενό αρχείο. Προσθέσαμε το αρχείο κεφαλίδας εισόδου-εξόδου «iostream» στο επάνω μέρος. Η βιβλιοθήκη 'iomanip' προστέθηκε για να χρησιμοποιήσει τη μέθοδο setprecision() του κώδικα μας. Μετά από αυτό, χρησιμοποιήσαμε τον τυπικό χώρο ονομάτων 'std' για να βεβαιωθούμε ότι χρησιμοποιούσαμε τον τυπικό τρόπο κώδικα και σύνταξης. Ο συνολικός κώδικας έχει εκτελεστεί εντός της συνάρτησης main() του κώδικα C++. Καμία άλλη λειτουργία που καθορίζεται από το χρήστη δεν χρησιμοποιείται για αυτό το σκοπό.







Μέσα στη συνάρτηση main(), έχουμε αρχικοποιήσει μια μεταβλητή διπλού τύπου 'v' με διπλή τιμή. Η πρώτη τυπική δήλωση 'cout' εμφανίζει την πραγματική διπλή τιμή μεταβλητής 'v' στο κέλυφος χωρίς καμία ενημέρωση. Μετά από αυτό, χρησιμοποιήσαμε 8 εντολές cout για να χρησιμοποιήσουμε τη μέθοδο setprecision() σε καθεμία. Αυτό γίνεται για να εφαρμόζεται η setprecision() στη μεταβλητή 'v' σε κάθε κινητή υποδιαστολή κάθε φορά. Πρέπει να καταλάβετε ότι η setprecision λειτουργεί μόνο στην τιμή μεγαλύτερη ή ίση με 5. Εάν η τιμή κινητής υποδιαστολής είναι μεγαλύτερη από 5, θα αυξήσει την τιμή πριν από αυτήν.



Για παράδειγμα, η setprecision() στην 1η κινητή υποδιαστολή θα στρογγυλοποιήσει το '5' μετά το σημείο και η τιμή '4' θα μετατραπεί σε 5. Ομοίως, η 2η τιμή κινητής υποδιαστολής '2' δεν μπορεί να στρογγυλοποιηθεί. Η 3η τιμή κινητής υποδιαστολής '7' θα μετατρέψει την τιμή '2' σε '3', η 4η τιμή κινητής υποδιαστολής '4' δεν μπορεί να στρογγυλοποιηθεί και η 5η τιμή κινητής υποδιαστολής '9' θα μετατρέψει την τιμή '4 ” έως 5 πριν από αυτό. Στο σημείο '0' θα μετατραπεί η τιμή '4' σε 5. Η αρνητική setprecision() δεν κάνει τίποτα άλλο παρά εμφανίζει ολόκληρη την πραγματική τιμή. Όλες οι τιμές στα κινητά σημεία 0 έως 5 και -1, -2 θα εμφανιστούν μετά την εφαρμογή της setprecision():







Ήρθε η ώρα να μεταγλωττίσετε και να εκτελέσετε τον κώδικα setprecision C++ με το ερώτημα μεταγλώττισης g++ και το ερώτημα εκτέλεσης «./a.out». Η έξοδος δείχνει ότι η πρώτη setprecision(1) μετατρέπει το 4 σε 5. Η setprecision(2) δεν έκανε τίποτα και εμφανίζει '4.5'. Η setprecision(3) αύξησε την τιμή από “4,52” σε “4,53”. Το setprecision(4) δεν κάνει τίποτα στην τιμή '4.527'. Το setprecision(5) αυξάνει την τιμή από “4,5274” σε “4,5275”. Η setprecision(0) αύξησε την τιμή στο 5. Η setprecision(-1) και η setprecision(-2) δεν έκαναν τίποτα όπως φαίνεται παρακάτω:

$ g++ νέο.cc

$. / α.έξω



Παράδειγμα 02:

Ας ρίξουμε μια ματιά σε ένα άλλο παράδειγμα. Ο κώδικας είναι παρόμοιος με το παραπάνω παράδειγμα, με μόνο μια αλλαγή στις δηλώσεις του cout. Το πρώτο cout εμφανίζει τις αρχικές τιμές ενώ τα επόμενα δύο δείχνουν το αποτέλεσμα της setprecision() στα κινητήρια σημεία 1 και 5. Το τελευταίο cout εμφανίζει το αποτέλεσμα της μεθόδου setprecision() στο floating-point 9, το οποίο φυσικά δεν είναι διαθέσιμο. Τα αποτελέσματα κινητής υποδιαστολής 1 και 5 είναι αρκετά αναμενόμενα, αλλά δεν μπορούμε να πούμε τίποτα για την κινητή υποδιαστολή 9. Ας εκτελέσουμε απλώς το αρχείο και ας ελέγξουμε ποια θα είναι η έξοδος αυτού του κώδικα:

#include

#include

χρησιμοποιώντας χώρο ονομάτων std ;

ενθ κύριος ( ) {

διπλό σε = 4,52749 ;

cout << 'Value Before setprecision : ' << σε << ' \n ' ;

cout << ακρίβεια ρύθμισης ( 1 ) << 'Βαλ στο 1:' << σε << ' \n ' ;

cout << ακρίβεια ρύθμισης ( 5 ) << 'Βαλ στο 5:' << σε << ' \n ' ;

cout << ακρίβεια ρύθμισης ( 9 ) << 'Βαλ στις 9:' << σε << ' \n ' ;

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Μετά τη μεταγλώττιση και την εκτέλεση αυτού του κώδικα, έχουμε τα προφανή αποτελέσματα για την ακρίβεια ρύθμισης στις θέσεις 1 και 3 της τιμής κινητής υποδιαστολής “4,52749”. Το αποτέλεσμα της setprecision 9 δείχνει την πραγματική τιμή της διπλής μεταβλητής 'v'. Αυτό μπορεί να οφείλεται στο γεγονός ότι η τιμή για την τοποθεσία 9 δεν είναι σταθερή:

$ g++ νέο.cc

$. / α.έξω

Ας ενημερώσουμε ξανά τον κώδικα για να διορθώσουμε τις τιμές μιας μεταβλητής 'v'. Έτσι, μετά την πρώτη δήλωση setprecision() cout που εφαρμόστηκε στην 1η θέση της μεταβλητής, χρησιμοποιήσαμε τη σταθερή μεταβλητή στο cout:

#include

#include

χρησιμοποιώντας χώρο ονομάτων std ;

ενθ κύριος ( ) {

διπλό σε = 4,52749 ;

cout << 'Value Before setprecision : ' << σε << ' \n ' ;

cout << ακρίβεια ρύθμισης ( 1 ) << 'Βαλ στο 1:' << σε << ' \n ' ;

cout << σταθερός ;

cout << ακρίβεια ρύθμισης ( 5 ) << 'Βαλ στο 5:' << σε << ' \n ' ;

cout << ακρίβεια ρύθμισης ( 9 ) << 'Βαλ στις 9:' << σε << ' \n ' ;

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Μετά τη μεταγλώττιση και εκτέλεση αυτού του ενημερωμένου κώδικα, έχουμε το σταθερό αποτέλεσμα setprecision στη θέση 9 μιας μεταβλητής 'v', δηλαδή 4.527490000:

$ g++ νέο.cc

$. / α.έξω

Συμπέρασμα:

Τέλος, όλα αυτά αφορούσαν τη χρήση της μεθόδου setprecision() στον κώδικα C++ για τη στρογγυλοποίηση και την εμφάνιση της τιμής μιας διπλής μεταβλητής. Έχουμε επίσης εξηγήσει σταθερές μεταβλητές στον κώδικα και τα οφέλη τους. Επιπλέον, έχουμε εφαρμόσει δύο σημαντικά παραδείγματα για να εξηγήσουμε την έννοια της ακρίβειας συνόλου στη C++. Ελπίζουμε ότι βρήκατε αυτό το άρθρο χρήσιμο. Δείτε άλλα άρθρα Linux Hint για περισσότερες συμβουλές και σεμινάρια.