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 :

limiter chiffres après la virgule


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 71
    Par défaut limiter chiffres après la virgule
    Bonsoir =D

    comment fait-on pour faire en sorte que lorsqu'on sélectionne (dans un menu préalablement crée) l'option 3 décimales par exemple, le programme affiche 3 chiffres après la virgule (bien sûr l'utilisateur peut écrire plus de chiffres) ? J'ai essayé avec FormatNumber (même Format) mais ça ne marche pas, en sortie j'ai toujours le résultat mais pas à 3 chiffres ...

    ps : je suis sous VB 2005

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 71
    Par défaut
    j'explique plus en détails ^^

    dans un menu déroulant, j'ai donc une option 3 décimales dont voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Function DecimalesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs, ByRef test As integer)
     
    test = 1
    Return test
    End Function
    et le bouton calcul :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
    Dim res As Double
    Dim test As Integer
    res=TextBox1.Text * 3.14 'un exemple
    if (test) Then 
           TextBox2.Text = FormatNumber(res,2)
    Else : TextBox2.Text = res
    End If
    End Sub
    Et ça ne marche pas, ça compile mais le If ne marche pas =/ me serais-je trompé dans le code? (probablement)

    Merci

    edit : ou alors lorsqu'on clique sur calcul, il recrée une variable test ?! (donc normal qu'il tienne pas compte)

    comment fait on alors pour "contrôler" qu'une option est active ou pas ?

  3. #3
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    J'ai du mal a comprendre ce que tu as fait là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Function DecimalesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs, ByRef test As integer)
    Tu as modifier la méthode clique du toolStripMenuItem pour ajouter test en paramètre par référence, mais du coup la méthode n'est plus bonne, d'ailleurs il n'y a plus le Handles de la méthode...
    efface complètement cette function et recrée là.
    Pour que ton code fonctionne il faudrait que tu mette la variable test en globale, devant tes méthodes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private test as integer
    que dans tes cliques tu fasses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private sub DecimalesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles  DecimalesToolStripMenuItem.Click
    test = 1
    end sub
    ensuite il te faudra virer test de ta sub button1_click la déclaration de variable test
    je ne comprend pas non plus ton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (test) Then 
           TextBox2.Text = FormatNumber(res,2)
    Else : TextBox2.Text = res
    End If
    moi j'utiliserais plutôt un select case du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select case test
           case 1 
                  TextBox2.Text = FormatNumber(res,2)
           case else
                  TextBox2.Text = res
    End If
    sinon pour le formatNumber, je ne connais pas et je ne sais pas si ca marche comme ca...

  4. #4
    Membre très actif
    Inscrit en
    Septembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2010
    Messages : 168
    Par défaut
    Bonjour c'est très simple ce genre de prob bon voila ce que tu fais


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox2.Text =Math.Round(res,2)
    et ça marche très bien sans prob

    bon courage

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Par défaut
    Citation Envoyé par najoua01 Voir le message
    Bonjour c'est très simple ce genre de prob bon voila ce que tu fais


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox2.Text =Math.Round(res,2)
    et ça marche très bien sans prob

    bon courage
    Salut,

    Je demanderais même plus y'a t'il pas un moyen d'automatiser celà ? ( faut-il créer une fonction ? )
    Même chose pour la méthode replace, n'y a-t-il pas un moyen d'automatiser ça ?

    merci ,

  6. #6
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Bonjour,

    Pourquoi pas quelque chose du genre:

    Code VB.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    'Je suppose que longueur est une variable définie ailleurs
    'et qui contient le nombre de décimales souhaitées
    'pour l'exemple je mets les valeurs en dur
    Dim longueur As Integer = 3 
    Dim res As Double = 11.7569
     
    Dim format As String = "N" & longueur.ToString
    Dim s As String = res.ToString(format)
    'ici s contiendra 11,757
    'notez l'arrondi d'une part et la virgule d'autre (utilisation des paramètres régionaux de formatage des nombres)

    En espérant que ça aide, cordialement !

Discussions similaires

  1. [C#] Limiter le nombre de chiffre apres la virgule ?
    Par MaxiMax dans le forum ASP.NET
    Réponses: 3
    Dernier message: 01/08/2011, 14h20
  2. limiter la saisie d'un textbox à 1 chiffre après la virgule
    Par petibonohm dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/02/2008, 13h43
  3. Somme limitée a 2 chiffre apres la virgule
    Par bullrot dans le forum C++Builder
    Réponses: 11
    Dernier message: 13/12/2007, 10h27
  4. Comment limiter le nombre de chiffre après la virgule ?
    Par Hoopsy dans le forum C++Builder
    Réponses: 15
    Dernier message: 06/07/2007, 16h12
  5. Limiter nombre de chiffre apres la virgule
    Par MaxiMax dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/08/2005, 12h02

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