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

VB.NET Discussion :

Dépassement de Capacité !?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut Dépassement de Capacité !?
    Bonjour,


    petit soucis de capacité que je n'arrive pas a comprendre...
    le calcul est pourtant pas compliqué, les valeurs cohérentes mais vb me sort une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ' Calcul des coefficients de la droite ( y = a.x + b )
     
            Dim Test_Num As Double = Nothing
            Dim Test_Denum_1 As Double = Nothing
            Dim Test_Denum_2 As Double = Nothing
     
            Test_Num = (n * S_Temps_LnU) - (S_Temps * S_LnU)
            Test_Denum_1 = (n * S_Temps_2) ' <- Dépassement de capacité sur cette ligne
            Test_Denum_2 = (S_Temps * S_Temps)
     
            a = Test_Num / ( Test_Denum_1 - Test_Denum_2 )
     
            b = (S_LnU * S_Temps_2 - S_Temps * S_Temps_LnU) / (n * S_Temps_2 - S_Temps * S_Temps) ' ou b = (S_LnU - a * S_Temps) / n
    et voila ce qu'il me ressort


    Le calcul est pourtant pas énorme: *17 Milliards*
    61 * 279.111.600 = 17.025.807.600
    Une idée?

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    C'est bon, désolé pour le dérangement.

    Va savoir pourquoi, mais comme mes deux variables étaient déclarées en Integer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim n As Integer
    Dim S_Temps_2 As Integer
    vb devait faire sa routine sur une variable du même type...

    Pas terrible...


    Solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim n As Double
    Dim S_Temps_2 As Double

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 251
    Par défaut
    Citation Envoyé par hunteshiva Voir le message
    Va savoir pourquoi, mais comme mes deux variables étaient déclarées en Integer
    Parce que VB, comme la plupart des langages fait ses calculs dans le type du premier opérande, ici n. Au besoin le second opérande est d'abords convertis dans le type du premier.
    Ensuite seulement le résultat est converti dans le type de la variable résultat.

    avec n et S_Temps_2 integer, ou n integer et S_Temps_2 double, tu as le problème, le calcul se faisant en integer (dans le second cas S_Temps_2 étant d'abord converti en integer.

    avec n et S_Temps_2 double, ou n double et S_Temps_2 integer, tu n'as pas le problème, le calcul se faisant en double (dans le second cas S_Temps_2 étant d'abords converti en double)

    A noter que pour les 2 second cas ci-dessus, si tu calcule, non pas (n * S_Temps_2), mais (S_Temps_2 * n), tu inverse les cas d'apparition du problème

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 17/10/2014, 16h08
  2. Transaction, Dépassement de capacité
    Par SkYsO dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 23/12/2008, 14h56
  3. Dépassement de capacité
    Par jean-pierre96 dans le forum Access
    Réponses: 2
    Dernier message: 10/05/2006, 16h04
  4. Réponses: 8
    Dernier message: 06/02/2006, 14h34
  5. détection de dépassement de capacité
    Par tut dans le forum C++
    Réponses: 10
    Dernier message: 01/12/2004, 22h11

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