IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Une erreur de dépassement arithmétique en utilisant la fonction EXP [2012]


Sujet :

Développement SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 176
    Points : 133
    Points
    133
    Par défaut Une erreur de dépassement arithmétique en utilisant la fonction EXP
    Bonjour,

    j'utilise dans mes calculs la fonction EXP , je rencontre le problème suivant pour des valeurs grandes.
    Que faire pour pouvoir calculer EXP pour des "float" plus grand ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT EXP(198);
    => 9,77929206569632E+85
    SELECT EXP(108995);
    =>Msg*8115, Niveau*16, État*2, Ligne*2
    Une erreur de dépassement arithmétique s est produite lors de la conversion de expression en type de données float.

    merci pour vos aides

  2. #2
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    avec vous essayé en castant votre float par exemple cast(xx as float(53))?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 176
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    oui avec "cast" j'ai même erreur

  4. #4
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Points : 1 668
    Points
    1 668
    Billets dans le blog
    8
    Par défaut
    Non, ce n’est pas possible !

    La fonction EXP (Exponentielle) retourne une valeur de type Float. Or, le type Float permet de représenter des valeurs allant de l'infiniment petit (jusqu'à la limite +/- 2.23E-308), à l'infiniment grand (jusqu'à la limite de +/- 1.79E+308). (avec ces imites je ne suis sûr que le terme infiniment petit et infiniment grand soit approprié !, mais bon ! )

    Le résultat au sens mathématique du terme de l’expression EXP(108995) dépasse de loin (de très très loin) la limite 1.79E+308

    Les débordements commencent déjà à partir de EXP(710). (pour EXP(709) c’est OK), alors je ne vous dis pas les débordements pour EXP(108995) !

    Il s’agit donc, d’un problème de domaine au sens relationnel du terme ; c.à.d. l’ensemble dans lequel les données d'un attribut (ie une colonne d'une relation) (ou d’un type de de données, en l’occurrence Float), prennent valeur.

    A+

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 176
    Points : 133
    Points
    133
    Par défaut
    OK, c'est bien clair

    Idée solution , je redimensionne mes valeurs en entrée pour obéir à cette contrainte.

    Merci à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/04/2015, 19h15
  2. Réponses: 12
    Dernier message: 15/06/2010, 18h07
  3. Erreur de dépassement arithmétique SQL2005
    Par Ligne34 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/08/2009, 16h30
  4. [Bug] Erreur de dépassement arithmétique
    Par Commodore dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/10/2007, 17h49
  5. EXP(1230) = erreur de dépassement arithmétique !
    Par Mohammmed dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/08/2007, 21h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo