Ενώ κατά την εκτύπωση η στρογγυλοποίηση των πραγματικών αριθμών στα τρία δεκαδικά ψηφία γίνεται κανονικά, όταν το τρίτο δεκαδικό είναι το 0 δεν εμφανίζεται στο αποτέλεσμα. Τι μπορώ να κάνω ώστε να εμφανίζεται;
Το παρακάτω νομίζω κάνει αυτό που ζητάς
#include <iostream> using namespace std; int main() { float num = 6.00300; cout.precision(5); cout.setf(ios::fixed, ios::floatfield); cout << num << endl; return 0; }
Αυτό είναι απάντηση, όχι σχόλιο.
@el20162: θα βοηθούσε αν προσέθετες στην ερώτησή σου ένα μικρό προγραμματάκι που να δείχνει τι προσπαθείς να κάνεις, ώστε να μπορούν να το κάνουν reproduce όσοι σου απαντούν.
@nickie δεν ειχα συγκεντρωσει ακομα τους απαραιτητους ποντους :P
Μπορείς να χρησιμοποιήσεις printf με αυτο τον τρόπο:
float x = 3.21; printf("%.3f", x);
Έξοδος:
3.210
Το νούμερο μετα την τελεια ειναι φυσικα το πλήθος των δεκαδικών ψηφίων που θέλεις να τυπωθούν.
Περισσότεροι τρόποι εδώ
Εκτύπωση πραγματικού αριθμού με τρία δεκαδικά ψηφία, εναλλακτικά, με όλους τους τρόπους που περιγράφουμε στο μάθημα progintro:
Με pzhelp
#include "pzhelp" PROGRAM { REAL x = 3.21; WRITELN(FORM(x, 0, 3)); }
Με iostream και stream manipulators:
#include <iostream> #include <iomanip> using namespace std; int main() { double x = 3.21; cout << fixed << setprecision(3) << x << endl; }
Με cstdio:
#include <cstdio> int main() { double x = 3.21; printf("0.3lf\n", x); }
301 questions
289 answers
288 comments
899 users