[eeei.gr Logo]
Επικοινωνία
Ταυτότητα
Μαθήματα Internet | Μαθήματα Προγραμματισμού | Net Business | Τα νέα του Internet | Ο Κόσμος του Αύριο

printf και sprintf (στρογγυλοποιήσεις)

Οι printf και sprintf αποτελούν «αδελφές» συναρτήσεις. Δέχονται τις ίδιες ακριβώς παραμέτρους και η διαφορά τους βρίσκεται στο γεγονός ότι η printf τυπώνει αμέσως, ενώ η sprintf χρησιμοποιείται για να τροποποιήσει μια τιμή (που φυσικά μετά μπορεί να τυπωθεί αν το επιθυμούμε).

Ας δούμε ένα παράδειγμα:

my $number = 8/3;

Το 8 δια του 3 μας δίνει: 2,66666666666666666666 κ.λπ. Εμείς όμως θέλουμε να στρογγυλέψουμε αυτό το νούμερο.

my $simpler = sprintf ("%.0f", $number);

Το % είναι υποχρεωτικό και το .0f σημαίνει ότι δεν θέλουμε καθόλου δεκαδικά ψηφία (floating point).

print "$simpler\n";

Η εκτύπωση εδώ θα είναι: 3 (2,7 που στρογγυλοποιείται σε 3).

Με ένα δεκαδικό ψηφίο έχουμε:

my $simpler = sprintf ("%.1f", $number);

Εδώ η $simpler γίνεται 2,7.

Αν θέλουμε να υπάρχουν 3 δεκαδικά ψηφία θα δηλώσουμε:

printf ("%.3f", $number);

Εδώ η εκτύπωση γίνεται απευθείας (χρησιμοποιήσαμε την printf αντί για τη sprintf) και το αποτέλεσμα θα είναι 2,667 (στρογγυλοποίηση του τελευταίου ψηφίου). Προσέξτε ότι εδώ ξεχάσαμε να βάλουμε το \n οπότε μετά την εκτύπωση δεν θα αλλάξει γραμμή.

Ας δούμε μερικά ακόμη παραδείγματα:

my $value = 4567899.789456123;

printf ("To akeraio meros ths timhs einai: %d\n" , $value);

Μας δίνει:

To akeraio meros ths timhs einai: 4567899

Το d σημαίνει ότι ενδιαφερόμαστε μόνο για το ακέραιο μέρος της τιμής και αγνοούμε τα δεκαδικά.

printf ("%.5f edo exoyme 5 dekadika\n", $value);

Μας δίνει:

4567899.78946 edo exoyme 5 dekadika


Τρέχουσα Ενότητα: Perl


 

Φιλικά - συνεργαζόμενα sites: Left Handed Products


© Eeei.gr 2009