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 :

Calculer depuis une textbox


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Par défaut Calculer depuis une textbox
    Bonjour à tous,

    Afin de m'entrainer je souhaite pouvoir calculer des nombres depuis une textbox de saisi ou l'utilisateur fournit les variables. (Cela peut être en décimal 0.002 par exemple)

    Je suis bloqué dans mon code avec l'erreur ,

    La conversion de la chaîne "0.2" en type 'Decimal' n'est pas valide.
    l'erreur se situe ligne 2, je ne vois pas comment vérifier et convertir la saisie de l'utilisateur dans une textbox


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub nbvaleurdogecoin_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nbvaleurdogecoin.TextChanged
            coursdogecoinn = CDec(coursdogecoin.Text)
            If IsNothing(nbvaleurdogecoin) Then
                Dim nbvaleurdogecoin As String = 1
            End If
            Dim montantdogecoin As Integer = nbvaleurdogecoin.Text
            System.Convert.ToDecimal(montantfinale)
            montantfinale.Text = montantdogecoin * valeurdogecoin & "€"
        End Sub

  2. #2
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Bonjour,

    Je ne suis pas capable de tester tout de suite, mais essaye avec des virgules au lieu des points, si ça marche, il faudra traiter la chaine de caractère pour changer les virgules en points si nécessaire. Et pour vérifier la saisie, deux possibilité :
    -On key down, vérifier si il s'agit d'un chiffre sinon un msgbox qui insulte.
    -Au moment de la validation : met un try catch autour de ton cast, et encore une fois si catch : insulte.

  3. #3
    Membre chevronné Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Par défaut
    J'ai essayé de faire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim coursdogecoinn As Integer = coursdogecoin.Text
    Cependant ils me retournent toujours :

    La conversion de la chaîne "0.2" en type 'Integer' n'est pas valide.

  4. #4
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Essaye comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    coursdogecoinn = CDec(coursdogecoin.Text.Replace(".", ","))
    Et sinon je comprend pas cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Convert.ToDecimal(montantfinale)
    Elle fonctionnera pas celle là.

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    la transformation d'un string en nombre se fait selon le paramétrage de windows, au niveau de la culture
    sur les windows français le séparateur de décimal est la virgule et non le point comme dans certains pays
    il y a une propriété qui peut te donner le séparateur de décimal de la machine, si tu souhaites que ton appli fonctionne sur tous les pc, pour faire un replace vers ce caractère
    http://msdn.microsoft.com/fr-fr/libr...vs.110%29.aspx
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Citation Envoyé par Lekno Voir le message
    J'ai essayé de faire comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim coursdogecoinn As Integer = coursdogecoin.Text
    Cependant ils me retournent toujours :
    La conversion de la chaîne "0.2" en type 'Integer' n'est pas valide.
    Un décimal ne peut pas aller dans un entier
    Sinon voir la réponse de Pol63

    Mais il faudrait bien séparer les choses (saisie et calculs, et éventuellement faire une function qui effectue les calculs) afin d'être clair — parceque là tu mélanges tout ; textbox et variable décimale.
    1 - vérification des saisies
    2 - Calculs
    3 - affichage dans la textbox de resultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ' ce code n'est pas dans l'événement TextChanged de la textbox nbvaleurdogecoin - le point aura déjà été corrigé - voir explication de Pol63
            Dim dec As Decimal
            If Decimal.TryParse(nbvaleurdogecoin.Text, dec) Then
                ' mes calculs avec dec
                ' ...
            Else
                MessageBox.Show("format incorrect")
            End If
    Je me demande comment cela peut fonctionner
    Citation Envoyé par Lekno Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            If IsNothing(nbvaleurdogecoin) Then
                Dim nbvaleurdogecoin As String = 1
            End If
    Ou plutôt si, je sais, nbvaleurdogecoin est un textbox défini en design et dans le if tu déclares une variable du même nom, le seul problème est qu'en sortant du if cette variable est détruite. (sinon tu aurais eu un : la variable 'nbvaleurdogecoin' masque une variable dans un bloc englobant dans l'EDI dans les erreurs) Ta textbox nbvaleurdogecoin ne vaudra jamais 1.

    A mon avis, voici un lien qui te sera très utile, le Cours VB.NET de Philippe Lasserre est une mine d'information, très bien pour apprendre.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

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

Discussions similaires

  1. [PowerShell] Rechercher logiciel depuis une textBox
    Par Unfam0us dans le forum Scripts/Batch
    Réponses: 12
    Dernier message: 06/12/2010, 08h24
  2. calcul depuis une requete
    Par berti dans le forum Langage
    Réponses: 5
    Dernier message: 16/05/2008, 10h10
  3. [Calcul] Bug lors d'un calcul depuis une saisie TextBox.
    Par telodo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 28/09/2007, 01h15
  4. Réponses: 2
    Dernier message: 04/09/2007, 13h53
  5. [C++.NET] Extraction de nombres depuis une TextBox
    Par KaeRZed dans le forum VC++ .NET
    Réponses: 4
    Dernier message: 19/04/2006, 13h57

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