Εργαστήριο Τεχνολογίας Λογισμικού
+2 votes
386 views

Ενώ κατά την εκτύπωση η στρογγυλοποίηση των πραγματικών αριθμών στα τρία δεκαδικά ψηφία γίνεται κανονικά, όταν το τρίτο δεκαδικό είναι το 0 δεν εμφανίζεται στο αποτέλεσμα. Τι μπορώ να κάνω ώστε να εμφανίζεται;

in progintro by (360 points)
edited by | 386 views
+2

Το παρακάτω νομίζω κάνει αυτό που ζητάς

#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;
}
+1

Αυτό είναι απάντηση, όχι σχόλιο.

+1

@el20162: θα βοηθούσε αν προσέθετες στην ερώτησή σου ένα μικρό προγραμματάκι που να δείχνει τι προσπαθείς να κάνεις, ώστε να μπορούν να το κάνουν reproduce όσοι σου απαντούν.

0

@nickie δεν ειχα συγκεντρωσει ακομα τους απαραιτητους ποντους :P

2 Answers

+3 votes

Μπορείς να χρησιμοποιήσεις printf με αυτο τον τρόπο:

float x = 3.21;
printf("%.3f", x);

Έξοδος:

3.210

Το νούμερο μετα την τελεια ειναι φυσικα το πλήθος των δεκαδικών ψηφίων που θέλεις να τυπωθούν.

Περισσότεροι τρόποι εδώ

by (690 points)
+3 votes

Εκτύπωση πραγματικού αριθμού με τρία δεκαδικά ψηφία, εναλλακτικά, με όλους τους τρόπους που περιγράφουμε στο μάθημα progintro:

  1. Με pzhelp

     #include "pzhelp"
        
     PROGRAM {
       REAL x = 3.21;
       WRITELN(FORM(x, 0, 3));
     }
    
  2. Με iostream και stream manipulators:

     #include <iostream>
     #include <iomanip>
     using namespace std;
        
     int main() {
       double x = 3.21;
       cout << fixed << setprecision(3) << x << endl;
     }
    
  3. Με cstdio:

     #include <cstdio>
        
     int main() {
       double x = 3.21;
       printf("0.3lf\n", x);
     }
    
by (9.5k points)

301 questions

289 answers

288 comments

899 users