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 :

Problème de calcul


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut Problème de calcul
    Bonjour,
    je dispose de trois textbox ou je vais saisir deux valeur dans deux et je voudrais afficher la valeur dans la troisieme mais le probléme c'est que lorsque mon calcul s'approche de zero genre 0,.... il m'affiche la valeur zero et je sais po pourquoi voiçi mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub TextBox34_KeyPress1(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox34.KeyPress
            Dim a As Double
            If e.KeyChar = Chr(13) Then
     
                a = Val(TextBox32.Text)
                TextBox63.Text = a * (100 / Val(TextBox33.Text) + 100 / Val(TextBox34.Text) - 2)
     
     
                TextBox35.Focus()
            End If
        End Sub
    lorsque j'insere les valeurs 1 et 8 j'obtiens directement un zero alors que normalement c'est 0.125
    Merci pour votre aide !

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Bonjour,

    mauvaise idée que de faire des calculs avec des types String. Commence par caster tes valeurs textuelles en valeurs numériques avant de procéder à tes calculs.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    Bonjour,

    mauvaise idée que de faire des calculs avec des types String. Commence par caster tes valeurs textuelles en valeurs numériques avant de procéder à tes calculs.
    J'ai pas trés bien compris est-ce-que vous pouvez m'aider avec un exemple svp ?

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    1 - Pas le peine de créer 2 fois le même sujet
    2 - Help dans le titre n'aide pas à avoir une réponse plus rapide
    3 - vous essayez de faire des calculs avec des chaines de caractères. Ce n'est pas une bonne méthode. Castez vos valeurs vers un type numérique (Decimal, Float, Long, etc.) avant de procéder aux calculs.

  5. #5
    Membre expérimenté Avatar de AcidLines
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Février 2010
    Messages : 198
    Par défaut
    Cela te cast (te converti) une valur chaine en décimale. Fais bien atention au fait qu'il faut absolument une valeur décimale dans la chaine du textbox, sinon tu risque de planté.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    Merci pour vos réponse au fait j'ai mis ceçi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Private Sub TextBox34_KeyPress1(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox34.KeyPress
            Dim a As Decimal
            If e.KeyChar = Chr(13) Then
                TextBox32.Text = CDec(Val(TextBox31.Text)) * CDec((Val(TextBox33.Text) / 100)) * CDec((Val(TextBox34.Text) / 100))
                a = Val(TextBox32.Text)
                TextBox63.Text = a * CDec(((1 / (Val(TextBox33.Text) / 100)) + CDec(1 / (Val(TextBox34.Text) / 100) - 2)))
    Mais aucune résultat la valeur dans le textbox63 est toujours zero alors que dans le textbox32 ça s'affiche sans ou avec le cdec

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    au fait lorsque la valeur s'approche de zero il affiche zero mais lorsque si c'est superieur à 1 il affiche avec la virgule normalement

  8. #8
    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
    Bonjour,

    Avant tout, je sais pas si tu compte maintenir ton code dans le temps,
    mais je pense que tu devrais faire un effort au niveau du code.

    TextBox32,TextBox33,TextBox34, ...
    C'est impossible a maintenir dans le temps ça.

    Met 2-3 commentaires pour expliquer ce que tu fais,
    et renomme les objets.
    ex: txta, txtCoeff, txtResultat, lblTitre...

    Ensuite pour ton problème essaye de faire un débogage manuelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    If e.KeyChar = Chr(13) Then
        ' Décalarion des varibles
        Dim a As Decimal      ' ??
        Dim Value1 as Decimal 'Variables de Test
        Dim Value2 as Decimal 'Variables de Test
        Dim Value3 as Decimal 'Variables de Test
        Dim Resultat1 as Decimal 'Variables de Test
     
        ' Chargement des valeurs
        Value1 = CDec(Val(TextBox31.Text))
        Value2 = CDec((Val(TextBox33.Text))/100
        Value3 = CDec((Val(TextBox34.Text))/100
     
        ' Calculs
        a = Value1 * Value2 * Value3
        Resultat1 = a * ( 1/Value1 + 1/Value2 - 2)
     
        ' Affichage des résultats
        TextBox32.Text = a
        TextBox63.Text = Resultat1
    voila, le code les pas claire, je sais pas pourquoi tu fais ce calcul,
    mais commente un peu, c'est horrible de voir ça aujourd'hui

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDec(Val(TextBox31.Text))
    Voir ça !!!

    On dirait du VB6.

    Utiliser ou

Discussions similaires

  1. Problème de calcule en SQL !
    Par FilipeVV dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/09/2005, 11h45
  2. Problème de calcul matricielle
    Par Clad3 dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 29/06/2005, 21h45
  3. problème de calcul des normales par sommet
    Par captainSeb dans le forum OpenGL
    Réponses: 2
    Dernier message: 21/01/2005, 13h42
  4. [Calendar]Problème de calcul de date
    Par valerie90 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 08/12/2004, 12h13
  5. Problème de calcul unix_timestamp
    Par petit_stagiaire dans le forum Administration
    Réponses: 2
    Dernier message: 28/04/2004, 15h27

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