begin process at 2012 05 28 16:10:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

affichage de tout un double


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

affichage de tout un double

mercredi 7 juin 2006 à 22:45:30 | affichage de tout un double

xian240482

petit programme :
#include <conio.h>
#include "stdafx.h"
void main()
{
    double d1 = 3.14159265358979323846;
    printf("Pi = %.52f\n",d1);
    double d2 = 0.14159265358979323846;
    printf("Pi = %.52f\n",d2);
}
et bien il donne avec visual 2005, en application consol :
Pi = 3.14159265358979310000000000000000000000000000000000;
Pi = 0.14159265358979323000000000000000000000000000000000;

Ce petit programme a pour seul but de démontrer qu'il existe en memoire une precision bien superieur (theoriquement 52) que ce que printf me founis : 17 chiffres significatifs. de plus, un nombre flotant stocker en memoire ne peu se terminer que par 5, ce qui n'est pas le cas ici.
La question est comment afficher TOUT les chiffres de mon double ?
Merci d'avance.


mercredi 7 juin 2006 à 23:36:26 | Re : affichage de tout un double

Hylvenir

Salut,
et bien t'en es pas sortie de ta démonstration.
Tu dois avoir des double 'standard' et leur précision est 15 (ou 16) digits pas plus.
En sachant évidement que les double ne sont pas précis pour la partie flottante ( 0.1 n'existe pas de ton ordinateur)
Par exemple essaye ça

printf( "%lf\n", 1234567890123456789.0 );
if ( 0.1 == ( 10 - 9.9 ) ) printf( "ok\n" ); else printf( "bad\n" );
printf( "%.18f  %.18f", 0.1, ( 10 - 9.9 ) );


Amuse toi bien en tout cas.

jeudi 8 juin 2006 à 00:38:41 | Re : affichage de tout un double

BruNews

Administrateur CodeS-SourceS
Ce que je résume par double IMprécision, idem pour la partie entière.

xian > si tu as besoin de calculs exacts, il faut te faire un type en virgule fixe sous forme de structure et écrire les opérations dont tu auras besoin, la plus délicate étant à coup sur la division (au moins pour les perfs).

ciao...
BruNews, MVP VC++
jeudi 8 juin 2006 à 21:25:04 | Re : affichage de tout un double

xian240482

j'ai effectivement besoin de faire des calculs. Et j'ai surtout besoin d'en voir les resultats ! j'ai reussis a voir l'ensemenble de mon double en enlevant(comme le petit prog d'en haut) les premier chiffres, ce qui fait que printf m'affiche le meme nombre de chiffres significatifs et donc me permet de voir la suite.
Mais c'est vraiment pas pratique et assez frustant car ces digits sont là en memoire, et il ne s'agit que d'un probleme d'affichage.
Comme je l'ai dis plus haut, un nombre en virgule flotante ne peut se terminé que par 5, donc comment faire pour voir se nombre en entier.
jeudi 15 juin 2006 à 22:12:00 | Re : affichage de tout un double

xian240482

Réponse acceptée !
#include <stdio.h>

void convertToString(char* chaine, unsigned int tailleMax,  double valeur,int nbDigitVoulut)
{
    int valeurEntier = (int) valeur;
    sprintf_s(chaine,tailleMax,"%i.",valeurEntier);
    if(valeur<0)
    {
        valeur*=-1.;
        valeurEntier*=-1;
    }
    int nbDigitEnCours=0;
    do
    {
        valeur = (valeur- ((double)valeurEntier) )*10.;
        valeurEntier = (int) valeur;
        nbDigitEnCours++;
        sprintf_s(chaine,tailleMax,"%s%i",chaine,valeurEntier);
    }
    while( nbDigitEnCours < nbDigitVoulut );
}

int main(int argc, char* argv[])
{
    char chaine[1000];
    double v1 = 3.14159265358979323846;
    printf(" v1 en printf          : %.50f\n",v1);
    convertToString(chaine,1000,v1,50);
    printf(" v1 en convertToString : %s\n",chaine);
    return 0;
}

Et ce qui donne :
 v1 en printf                  : 3.14159265358979310000000000000000000000000000000000
 v1 en convertToString : 3.14159265358979311599796346854418516159057617187500


Cette discussion est classée dans : programme, printf, affichage, double, pi


Répondre à ce message

Sujets en rapport avec ce message

Probleme utilisation de fread [ par Trinita16 ] Bonjour, Voila le source d'un programme qui doit lire un fichier binaire. Mais je ne comprends pas l'executable systematiquement...Je pense qu'il y a Un ptit pb en C, Debutant 2 . [ par Tkaos ] Voila encore un probleme, apres avoir appris a me servir du "if" j'ai fait ce petit programme :#include #include #include int main(void) { char szname Pb debutant "C" 2 [ par Tkaos ] Voila encore un probleme, apres avoir appris a me servir du "if" j'ai fait ce petit programme :#include #include #include int main(void){char szname[1 Pb peut etre de compilateur ?! Need Help please [ par Orezza ] Orezzasalut à tous, je ne comprends vraiment pas le Pb, le compilateur Visual C++ indique 0 erreur-0 warning, or kand j'execute mon prog des ke je ren Affichage décimal [ par couriousous ] Hello!Comment afficher une variable long double avec toutes ses décimales SANS la convertire au format double (perte de précision)???Merci! a l'aide!!!!?!? programme equivalent au DIR de Dos [ par rouxc ] Ce programme doitpermettre de lister des fichiers en parcourant les sous-répertoires avecquelques options de tri pour la sélection et l'affichage des CRC + affichage/conversion binaire [ par Ferrari01 ] Bonjour...Est-ce que quelqu'un aurait un petit programme de CRC et/ou un petit programme qui permet d'afficher 4 caractères en binaire (ex.: abcd -> e affichage au fur et à mesure [ par llandry ] Bonjours,Je crée un programme devant déplacer des lettres sur la fenetre.Le probleme est que le déplacement des lettres s'effectuent bien mais je ne v envoyer une commande à l'intérieure du programme sous forme de string [ par oudkaramla ] bonjour tout le monde j'ai un programme qui demande à l'utilisateur d'entrer une commande sur la fenêtre consolesauf que moi je veux le faire à l'inté aide pour mon premier programme merci [ par newbieratus ] je debute ca fait une semaine que j'ai commencer le C et g creer un petit programme mais il ne marche pas !! quelqu' un pourrait t'il m'aider et me di


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,806 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales