printf(), κινητής υποδιαστολής προεπιλεγμένη ακρίβεια είναι 6 δεκαδικά ψηφία

Αποποίηση ευθυνών για περιεχόμενο της Γνωσιακής βάσης που έχει αποσυρθεί

Αυτό το άρθρο αφορά προϊόντα για τα οποία η Microsoft δεν παρέχει πλέον υποστήριξη. Συνεπώς, το παρόν άρθρο παρέχεται "ως έχει" και δεν θα ενημερώνεται πλέον.

Σύνοψη

Από προεπιλογή, η συνάρτηση printf() εμφανίζει έναν αριθμό κινητής υποδιαστολής σε έξι ψηφία ακριβείας. Αυτή η προεπιλογή ισχύει επίσης για διπλή ακρίβεια αριθμών.


Για να εμφανίσετε επιπλέον ψηφία ακριβείας, καθορίσετε μια τιμή για το πεδίο ακρίβεια με την προδιαγραφή μορφής του printf(), ως εξής:
%[<flags>][<width>][.<precision>]<type>

Περισσότερες πληροφορίες

Το παρακάτω παράδειγμα κώδικα παρουσιάζει τεκμηριωμένη printf() συμπεριφορά που μπορεί να εμφανίζεται ως ένα πρόβλημα με τη λειτουργία.

   #include <stdio.h>
main()
{
double d = 1.2345678912;

printf("%e\n", d);
printf("%le\n", d);
}

Αυτό το παράδειγμα κώδικα, δημιουργεί την ακόλουθη έξοδο:


1.234568e+000
1.234568e+000

Για να εμφανίσετε την τιμή d την απόλυτη ακρίβεια, τροποποιήστε το παράδειγμα κώδικα για να χρησιμοποιήσετε την ακόλουθη εντολή:
   printf("%.15le", d);
Ιδιότητες

Αναγνωριστικό άρθρου: 29557 - Τελευταία αναθεώρηση: 21 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια