EXP(1230) = erreur de dépassement arithmétique !

Signaler
Messages postés
7
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
1 février 2008
-
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
-
Bonjour,

Le résultat de l'execution de la requête: Select EXP(1230) est le message d'erreur suivant:

Une erreur de dépassement arithmétique s'est produite lors de la conversion de expression en type de données float.

Et le résultat de EXP(-1230) est 0 !!!

Ce n'est qu'un exemple bien sûr !

Quelqu'un aurait une explication ?
En fait, j'ai une procédure stockée qui calcule l'exponentiel d'une expression dont la valeur peut aller jusqu'à des milliers !

Y'a t-il un moyen d'éviter cette contrainte ????

Bien merci d'avance.

4 réponses

Messages postés
96
Date d'inscription
samedi 21 octobre 2006
Statut
Membre
Dernière intervention
25 avril 2009

Euh...
C'est un peu grand quand même !

D'après ma calculatrice :
e^1230 = 1.52 * 10^534 !!!
Ca fait des milliards de milliards de milliards... bref aucun type en VB ne peut contenir un nombre aussi grand !

Les types Double ou Décimal (les plus grands) s'arrêtent à 10^28 !!


Faudra trouver autre chose...
Messages postés
96
Date d'inscription
samedi 21 octobre 2006
Statut
Membre
Dernière intervention
25 avril 2009

Erreur de ma part :

Il faut que tu déclare ta variable en tant que Double
Elle peut aller jusqu'à 1,797693 * 10^308
Messages postés
96
Date d'inscription
samedi 21 octobre 2006
Statut
Membre
Dernière intervention
25 avril 2009

Donc après un rapide calcul, tu ne peux pas aller au delà de EXP(709)

Voilà...
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
salut,

et F1, tu n'as pas la touche ??

En vb6, voilà ce que me dit MSDN :

Renvoie une valeur de type Double indiquant la valeur de e (base des logarithmes népériens) élevé à une puissance.

Syntaxe

Exp(number)

L'[javascript:hhobj_4.Click() argument]number peut contenir une valeur de type [javascript:hhobj_5.Click() Double] ou toute [javascript:hhobj_6.Click() expression numérique] valide.

Remarques

Si la valeur de l'argument number est supérieure à 709,782712893, une erreur se produit. La [javascript:hhobj_7.Click() constante]e est environ égale à 2,718282.

Note   La fonction Exp, qui est la fonction réciproque de la fonction Log, est parfois désignée par l'expression "antilogarithme".

@++

<hr width="100%" size="2" />( Nouveau forum : Exclusivement Office & VBA/STRONG>