kanarinaki Δημοσ. 10 Νοεμβρίου 2013 Δημοσ. 10 Νοεμβρίου 2013 Καλημέρα ξέρω ότι είναι πολύ απλό θέμα αλλά έχω κολλήσει. Θέλω το πρόγραμμα να εκτυπώνει έναν δεκαδικό αριθμό (τύπου float) με ακρίβεια 2 δεκαδικά ψηφία και 5 συνολικά ψηφία. Δηλαδή όταν δέχεται έναν αριθμό πχ με 9 συνολικά ψηφία να τον κόβει. Το %5.2f δεν είναι γιατί το έψαξα. Ευχαριστώ για τη βοήθεια σας
migf1 Δημοσ. 10 Νοεμβρίου 2013 Δημοσ. 10 Νοεμβρίου 2013 Ο μόνος λόγος για να μην σου "δουλεύει" το %5.2f είναι όταν το ακέραιο τμήμα του δεκαδικού που του δίνεις είναι μεγαλύτερο του 999, οπότε και θα σου τυπώσει όλα τα ψηφία του ακέραιου τμήματος (και δεν θα μπορούσε να γίνεται κι αλλιώς). Μήπως εννοείς κάτι άλλο;
kanarinaki Δημοσ. 10 Νοεμβρίου 2013 Μέλος Δημοσ. 10 Νοεμβρίου 2013 Αν βάλω δηλαδή το 15698.34456 θα μου βγάλει όλο το ακέραιο μέρος (15698.34) και ας είναι περισσότερα από 5 τα συνολικά ψηφία.
bird Δημοσ. 10 Νοεμβρίου 2013 Δημοσ. 10 Νοεμβρίου 2013 Άν θέλεις να σου βγάζει όλο το ακέραιο μέρος και μόνο 2 δεκαδικά βάλε: %.2f float x = 15698.34456; printf("%.2f",x); Αποτέλεσμα 15698.34
kanarinaki Δημοσ. 10 Νοεμβρίου 2013 Μέλος Δημοσ. 10 Νοεμβρίου 2013 Όχι ρωτάω αν βάλω %5.2f τότε το 15698.34456 θα εμφανιστεί 15698.34 ενώ θέλω συνολικά να είναι 5 τα ψηφία. Αλλά όπως μου απάντησαν και πιο πάνω δεν γίνεται γιατί είναι μεγαλύτερος ο αριθμός.
imitheos Δημοσ. 10 Νοεμβρίου 2013 Δημοσ. 10 Νοεμβρίου 2013 Ναι όπως είπανε και τα άλλα παιδιά εφόσον ο αριθμός είναι μεγαλύτερος τότε δεν μπορεί να σου κόψει ψηφία. Ένας τρόπος να έχεις πάντα τον ίδιο αριθμό "χαρακτήρων" είναι να χρησιμοποιήσεις την επιστημονική μορφή αλλά οι περισσότεροι βρίσκουν την μορφή άσχημη-δυσνόητη. #include <stdio.h> int main(void) { double d1 = 15698.34456; double d2 = 32.134; printf("%.2e %.2e\n", d1, d2); printf("%.3e %.3e\n", d1, d2); return 0; } Έξοδος: 1.57e+04 3.21e+01 1.570e+04 3.213e+01 Όλοι οι αριθμοί ανεξάρτητα από την τιμή τους εμφανίζονται με τον ίδιο αριθμό χαρακτήρων (και ένα ακόμη για πρόσημο αν είναι αρνητικοί) ανάλογα με την ακρίβεια που θέλεις να έχεις. Δεν νομίζω να σου αρέσει η επιστημονική μορφή αλλά την αναφέρω εγκυκλοπαιδικά.
albNik Δημοσ. 10 Νοεμβρίου 2013 Δημοσ. 10 Νοεμβρίου 2013 Η βαλε εναν έλεγχο για x<1000 5.2 για x<10 000 5.1 για x>= 10000 5.0
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα