FORUM Tom's Hardware » Programmation » C / C++ / Java » Nombre Décimaux en C
 

Nombre Décimaux en C

Il y a 413 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici



Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Nombre Décimaux en C
 
Plus d'informations

Voici 2 petits programmes que j'ai créé. Le premier est pour calculer E et le second pour calculer Pi. Les deux fonctionnent mais leurs réponses ne dépassent jamais 6 décimals de précision. J'aimerais que les programmes soient capables d'inscrire les réponses avec plus de décimal et peut-être pouvoir leur demander un certain nombre de décimal.

E:

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int main(int argc, char *argv[])
  5. {
  6.   double base = 1, increment = 2, number = 2, probase = 0, loop = 0;
  7.     for (loop = 0 ; loop < 100000000000 ; loop++)
  8.     {
  9.         probase = base * increment;
  10.         number = number + (1 / probase);
  11.         base = probase;
  12.         increment++;
  13.         if (loop == 100000000)
  14.             {
  15.                 printf("100 000 000\n%lf\n", number);
  16.             }
  17.     }
  18.   printf("%lf", number);
  19.   return 0;
  20. }



Pi:

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int main(int argc, char *argv[])
  5. {
  6.   double base = 3, increment = 0, number = 0, numb = 0, loop = 0;
  7.   number = 1;
  8.     for (loop = 0 ; loop < 1000000 ; loop++)
  9.     {
  10.         if (increment == 0)
  11.             {
  12.                 numb = (1 / base);
  13.                 number = number - numb;
  14.                 base+=2;
  15.                 increment++;
  16.             }
  17.         if (increment == 1)
  18.             {
  19.                 numb = (1 / base);
  20.                 number = number + numb;
  21.                 base+=2;
  22.                 increment--;
  23.             }
  24.     }
  25.   number = 4 * number;
  26.   printf("%lf\n", number);
  27.   return 0;
  28. }

C is a sharp tool
Plus d'informations

Pampine a écrit :

Voici 2 petits programmes que j'ai créé. Le premier est pour calculer E et le second pour calculer Pi. Les deux fonctionnent


J'ai une boucle infinie....

Project : Forums
Compiler : GNU GCC Compiler (called directly)
Directory : C:\dev\forums2\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.c
main.c: In function `main':
main.c:9: warning: integer constant is too large for "long" type
main.c: At top level:
main.c:5: warning: unused parameter 'argc'
main.c:5: warning: unused parameter 'argv'
Linking console executable: console.exe
Process terminated with status 0 (0 minutes, 3 seconds)
0 errors, 3 warnings


Problème de taille max de constante. Utiliser LONG_MAX, ULONG_MAX (<limits.h> ) ou DBL_MAX, LDBL_MAX (<float.h> )

Pour augmenter la précision de l'affichage :

Code :
  1. printf ("%.10f\n", number);


ou

Code :
  1. printf ("%g\n", number);


Message édité par Emmanuel Delahaye le 03-02-2007 à 14:28:19

---------------
Des infos sur la programmation et le langage C:
http://bien-programmer.blogspot.com/
http://mapage.noos.fr/emdel/

 

Plus d'informations

Merci pour la réponce, j'ai simplement changer le %lf pour %.100f. Pour ce que est de la boucle infini, je n'ai jamais eu ce problème.

C is a sharp tool
Plus d'informations

Pampine a écrit :

Merci pour la réponce, j'ai simplement changer le %lf pour %.100f.


Faut peut être pas exagérer non plus. La précision des nombres à virgule flottante est loin d'être infinie...

Tu peux l'augmenter avec long double au lieu de double (affichage %Lf ou %.20Lf, par exemple), mais 100, non, faut pas rêver...

Les limites sont définies dans <float.h>.


Message édité par Emmanuel Delahaye le 04-02-2007 à 09:01:00

---------------
Des infos sur la programmation et le langage C:
http://bien-programmer.blogspot.com/
http://mapage.noos.fr/emdel/

 

G.M.G.V.S.O.
Profil : Modo matériel
Plus d'informations

Apres tu peux tjrs te coder une routine de calcul en précision infinie (i.e. dont la limite est définissable à la volée) pour ce genre de cas (e, pi, etc ...) mais bon ce n'est peut etre pas nécessaire dans ton cas ...

cf: http://www.vbfrance.com/codes/JUST [...] 22182.aspx


Message édité par boub popsyteam le 04-02-2007 à 16:41:31

---------------
SPAM & WAREZ = Ban!
Ultimate Boot CD | Memtest+
Bijoux Fantaisie de Créateur !

  FORUM Tom's Hardware » Programmation » C / C++ / Java » Nombre Décimaux en C

Aller à :
 

Annonces Google
Publicité
Offres partenaires
Actualités relatives

ISSCC : retour sur le Power6 et le Power de P.A. Semi

Publié le 13 February 2007

À l’ISSCC (International Solid-State Circuits Conference), un salon qui se tient pour le moment à San Francisco, on en apprend un peu plus sur les processeurs de la famille Power, le Power6 d’IBM et le P6T de P.A. Semi. Le Power6 d’IBM Le Power6 d’IBM va ... Lire la suite

Le nombre de spams se stabilise

Publié le 14 January 2005

Après des années de croissance, il semble enfin que le nombre de Spams se stabilise depuis quelques mois. En effet, selon une étude de Brightmail, qui appartient maintenant à Symantec, les spams représentaient 67% des mails envoyés en décembre 2004 alor Lire la suite

Le dégroupage ADSL passe la barre des 500 000

Publié le 18 May 2004

L'ART (autorité de régulation des télécoms) vient d'annoncer que la barre des 500.000 lignes ADSL dégroupées venait d'être franchie. En effet, au premier mai, on pouvait compter quelques 547 613 lignes dégroupées. Comme le montre le graphiq Lire la suite

Un milliard de transistors en 2005

Publié le 10 February 2003

Selon Intel, son futur processeur Itanium Montecito, qui devrait faire son apparition en 2005, devrait comporter pas moins d'un milliard de transistors, expliqué en grande partie par un cache de niveau 3 de pas moins de 18 Mo ! Deuxième explication, Lire la suite

Les derniers tests

Comparatif ADSL et internet haut débit

Publié le 08 October 2008

Après un mois de Septembre très dynamique, période pendant laquelle nombre d'étudiants et de familles souscrivent à une nouvelle offre d'accès à Internet, le mois d'octobre s'annonce plus calme. Vraiment plus calme ? Lire la suite

Test Panasonic LX3 : un vrai compact pour les experts

Publié le 07 October 2008

Successeur du LX2, les caractéristiques techniques du le Panasonic lx3 impressionnantes sur le papier. Reste à voir s’il tient ses promesses sur le terrain. Pour cela nous l’avons mesuré au Canon Powershot G9. Lire la suite

Nano vs Atom vs Athlon : la guerre des Watts

Publié le 06 October 2008

Nous avons comparé l'Atom 230 d'Intel, le Nano L2100 de VIA afin de savoir quel processeur était le plus performant pour des machines très économes en énergie. VIA promet des performances exceptionnelles. Est-ce assez pour battre l'Atom ? Lire la suite

Le Home Cinema avec un graphique intégré ?

Publié le 03 October 2008

Le Radeon HD 3200 (chipset 780G) et le GeForce 8200 (chipset MCP78S) sont les premiers circuits vidéo intégrés à pouvoir accélérer la lecture du Blu-ray. Nous examinons en détail les performances de ces deux solutions. Lire la suite