Programme 7 : Imprécision avec le float avec un calcul sur PI

text/x-c++src Imprécision avec le float avec un calcul sur PI.cpp — 1.3 KB

Contenu du fichier

/** 
  \file pi.cpp
  \brief Illustration de l'imprecision lie aux reels avec PI
  
  \author Benoit Fraikin
  \date 17 fevrier 2007 (derniere version)
  \date 17 fevrier 2007 (création)
  \version 1.0 : 17 fevrier 2007 
  
  Ce programme montre le resultat obtenu lors des calculs de cos(PI/2) et sin(PI)
  lorsqu'on traite PI comme un nombre de type \c double puis comme un nombre de type \c float.
  Les valeurs obtenues sont imprecises. Ce qui est normal puisque PI n'est jamais 
  le PI mathematique, et est toujours une valeur approchee.
  
  La bibliotheque iomanip permet de definir une meilleure precision pour l'affichage des 
  valeurs numeriques.
  
  */

#include <cmath>
#include <iomanip>
#include <iostream>

using namespace std;
/**
  \brief Illustration de l'imprecision lie aux reels avec PI
 */
int main ()
{
    const double PI = acos(-1); // = 3.14159265359
    const float PI_F = (float) acos(-1); // = 3.14159

    cout << "Gestion de PI de type double" << endl ;
    cout << setprecision(12) ;
    cout << PI << endl;
    cout << cos(PI/2) << endl ;
    cout << sin(PI) << endl ;

    cout << "Gestion de PI de type float" << endl ;
    cout << setprecision(6) ;
    cout << PI_F << endl;
    cout << cos(PI_F/2) << endl ;
    cout << sin(PI_F) << endl ;
    
    return 0;
}