xian240482
Messages postés15Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention15 juin 2006
-
7 juin 2006 à 22:45
xian240482
Messages postés15Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention15 juin 2006
-
15 juin 2006 à 22:12
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 ?
Hylvenir
Messages postés364Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 5 octobre 20062 7 juin 2006 à 23:36
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
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 8 juin 2006 à 00:38
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).
xian240482
Messages postés15Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention15 juin 2006 8 juin 2006 à 21:25
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.