étrange Exponentielle

Résolu
cs_BirD Messages postés 90 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 28 avril 2010 - 10 nov. 2009 à 21:07
cs_BirD Messages postés 90 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 28 avril 2010 - 11 nov. 2009 à 10:05
Hello tout le monde,

Dans un programme, je dois calculer une exponentielle. Petit tour sur google, je vois que la librairie math.h contient la fonction
float exp (float x );
. Donc je me dit nickel bleu ciel, je la prends tel quel et voila que mon programme ne me retourne pas du tout la valeur attendue.

Voici un extrait du code :
#include <math.h>
.
.
.
const float Kb = 1.38E-23; //constante de Boltzmann

float test = exp(-4/Kb);
cout << test << "\n";


Ça me retourne 0 alors que je m'attends a recevoir une valeur du type 0.373249849.

Je me suis penché du coté de la taille des valeurs. Il se trouve que -4/Kb = −2.898550725e+23 et les floats peuvent prendre des valeurs entre -3.4*10^-38 à 3.4*10^38.

En revanche, pour d'autres valeurs plus "simple" la fonction renvoie des résultats corrects.

Merci de votre aide.
BirD

2 réponses

cs_Lucky92 Messages postés 180 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 16 août 2012 2
11 nov. 2009 à 07:59
Salut,

Moi ça me semble pas si mal comme résultat mathématique.
En tout cas, c'est sûrement pas 0.373249849.
Je suis pas un pro en thermo, mais je parierais bien sur le fait que ta formule est fausse ou incomplète.

Cordialement.
3
cs_BirD Messages postés 90 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 28 avril 2010
11 nov. 2009 à 10:05
Ah oui en effet,

J'avais fait mon estimation avec la calculatrice du pc et j'ai du faire une erreur d'entrée...

bizzard. Merci.


BirD
0
Rejoignez-nous