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

 .NET Discussion :

Format nombre VB.net


Sujet :

.NET

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Format nombre VB.net
    Bonjour,

    Comment on fait pour formater un nombre avec 2 déciamles après la virgule et le séparateur de millier svp ?

    J'ai le code suivant:

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    Dim Montant As Decimal = TextBoxMontant.Text

    TextBoxProfit.Text = TextBoxMontant.Text - TextBoxCoût.Text

    TextBoxRenta.Text = TextBoxProfit.Text / TextBoxMontant.Text

    Que dois-je ajouter ?????

    Merci

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    Pour obtenir un décimal sous la forme 1 234 56,12, je te propose un petit bout de code, qu'il te faudra adapter en fonction de tes besoins

    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
     
    // dans les imports
    Imports System.Globalization
     
    // dans la classe
    Private Function formater(ByVal val As Decimal) As String
         Dim formatNombre As NumberFormatInfo = New CultureInfo("fr-FR", False).NumberFormat
     
         Dim valString As String
         Dim valFinal As String
     
         valString = val.ToString("C", formatNombre)
         valFinal = valString.Substring(0, valString.ToString.Length - 1)
     
         Return valFinal
    End Function
    En espérant que ça te serve

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci Maylin pour ta reponse, mais je n'y arrive pas. je suis novice (vb depuis 2 semaines). en fait mon code est le suivant:

    Public Class Form2

    Dim Durée, Montant, Coût, Profit As Integer

    Dim Renta As Decimal

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Durée = TextBoxDurée.Text

    TextBoxCoût.Text = Durée * 150


    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    Montant = TextBoxMontant.Text

    TextBoxProfit.Text = TextBoxMontant.Text - TextBoxCoût.Text

    TextBoxRenta.Text = (TextBoxProfit.Text / TextBoxMontant.Text) * 100

    End Sub[/I][/I]



    Et j'aimerais que dans ma textboxRenta, le résultat s'affiche en %age avec 2 décimal après la virgule.

    ou c'est les imports et les classes ?
    Pourrais-tu me préciser exactement ou je dois intégrer tes codes STP ???

    MERCI A TOI

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 26
    Points
    26
    Par défaut
    Voici comment se présente une classe VB.NET :

    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
    // tes imports
    Imports System.Globalization
     
    // ta classe
    Public Class nomDeTaClasse
     
        // tes méthodes
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            // tes actions
        End Sub
     
        // les fonctions que tu créés, auxquelles tu vas faire appel dans ton code
        Private Function formater(ByVal val As Decimal) As String
            Return va
        End Function
    End Class
    Donc l'idée c'est que dans ta méthode Button2_Click, tu vas vouloir faire à la fonction qui converti ton string en décimal (formaté en 11, 11). Essaye quelque chose comme çà :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    Imports System.Globalization
     
    Public Class Form2
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim duree, cout, profit as Integer
            Dim montant, renta as Decimal
     
            // test si ta textBox n'est pas vide 
            If String.IsNullOrEmpty(tTextBoxDurée.Text)
                    duree = TextBoxDurée.Text
     
                    cout = duree * 150
                    TextBoxCoût.Text = cout 
            End If
     
            If String.IsNullOrEmpty(TextBoxMontant.Text)
                    montant = TextBoxMontant.Text
     
                    profit  = montant - cout
                    TextBoxProfit.Text = profit
     
                    renta = (profit / montant)  * 100
                    // appel à ta fonction 'formater' avec le paramètre renta
                    TextBoxRenta.Text = formater(renta)
            End If
    End Sub
     
        // fonction qui transforme un décimal au format xx,xx
        Private Function formater(ByVal renta As Decimal) As String
            Dim formatNombre As NumberFormatInfo = New CultureInfo("fr-FR", False).NumberFormat
     
            Dim rentaString As String
            Dim rentaFinal As String
     
            rentaString = renta.ToString("C", formatNombre)
            rentaFinal = rentaString .Substring(0, rentaString.ToString.Length - 1)
     
            Return valFinal
        End Function
    End Class
    PS : j'ai fait quelques modifications dans ton code
    - un seul bouton au lieu de deux (pourquoi en avoir deux ?)
    - renommage des variables. Evite au maximum la majuscule au début des variables, et jamais d'accents également
    - utilises des labels au lieu de textBox pour les zones ou tu veux un simple affichage (l'utilisateur ne peut rien écrire dedant)
    - privilégie les variables locales (déclarées dans les méthodes/fonctions) au lieu des variables globales. Cela te facilitera le debug
    - donnes des noms sémantiques à tes boutons, cela aide à la compréhension du code/relecture

Discussions similaires

  1. Réponses: 12
    Dernier message: 29/01/2024, 15h32
  2. formater nombre vb.net
    Par Alex35 dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/10/2009, 11h50
  3. Format nombres Excel importés par VB.net
    Par vérokit dans le forum VB.NET
    Réponses: 4
    Dernier message: 22/02/2008, 07h55
  4. [D2005] Formation Delphi 2005 .NET
    Par Promeneur dans le forum Delphi .NET
    Réponses: 3
    Dernier message: 02/09/2005, 10h28
  5. [Format]nombres avec des 0
    Par zozolh2 dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 01/06/2004, 08h43

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