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 :

arrondi a 2 decimales par une fonction [Débutant]


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut arrondi a 2 decimales par une fonction
    Bonjour,
    Je voudrais que certaines valeurs affichées dans certaines textbox de mon appli soient arrondies a 2 decimales (concretement, si l'on tape 2 dans le textbox, celui ci afficherait 2.00)

    J'avais pour cela crée une fonction (tirée du "Lasserre")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public Function Arrondir(ByVal Valeur As Double) As Double
    'arrondi a 2 chiffres après la virgule
    Return (Math.Round(Valeur * 100)) / 100
    End Function
    End
    cette procédure est elle adequate pour simplement arrondir des données (doubles) entrées au clavier dans des textbox ou puis je faire bien plus simple ?

    J'ai aussi essayé comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim monnombre As Double 
    Console.WriteLine(monnombre.ToString("0.00")) 'affichage avec 2 décimales
    mais cela ne fonctionne pas non plus

    Merci bien

  2. #2
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Ouais, mais là, non, c'est juste pas possible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.Format("{0:0.00}", tavaleur);
    http://www.csharp-examples.net/string-format-double/

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut
    oups croisement de topic.

    Alors je viens d'essayer mais arf j'ai du mal le placer car ca ne fonctionne toujours pas

  4. #4
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Tu peux poster ton code ?

    Car la syntaxe que je t'ai donné (au point virgule près, qu'il faut supprimer vu que t'es en VB.NET) ça devrait marcher...

  5. #5
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut
    en fait c'est tout simple ce n'est que du got focus et du lost focus avec une importation de données eventuelle.
    voila le code :
    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 OXL = Microsoft.Office.Interop.Excel
    Imports System.IO
    Imports System.Data.OleDb
    Imports System.Math
    Public Class Formcomp1m
        Dim ValUCDVA1M, ValS1M, ValUCNVA1M, ValC1M, ValA1M, ValK11M, ValK21M, ValQI1M, ValUCDVA1M2, ValUCNVA1M2, ValS1M2, ValC1M2, ValA1M2, ValK11M2, ValK21M2, ValQI1M2 As Double
        Private AppExcel As OXL.Application
        Private xlWorkbook As OXL.Workbook
        'feuille 1
        Private xlWorkSheetThree As OXL.Worksheet
        Private appPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
        Private Sub Formcomp1m_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            DecimalSeparator = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator
            UCDVA1M.Text = ""
            UCDVA1M.Refresh()
            UCDVA1M.BackColor = Color.Purple
        End Sub
        Private Sub UCDVA1M_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles UCDVA1M.GotFocus
            UCDVA1M.Text = ""
            UCDVA1M.Refresh()
            UCDVA1M.BackColor = Color.Purple
        End Sub
        Private Sub UCDVA1M_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles UCDVA1M.LostFocus
            UCDVA1M.BackColor = Color.LightSlateGray
        End Sub
        Private Sub UCNVA1M_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles UCNVA1M.GotFocus
            UCNVA1M.Text = ""
            UCNVA1M.Refresh()
            UCNVA1M.BackColor = Color.Purple
        End Sub
        Private Sub UCNVA1M_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles UCNVA1M.LostFocus
            UCNVA1M.BackColor = Color.LightSlateGray
        End Sub
        Private Sub S1M_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles S1M.GotFocus
            S1M.Text = ""
            S1M.Refresh()
            S1M.BackColor = Color.Purple
        End Sub
    Private Sub S1M_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles S1M.LostFocus
            S1M.BackColor = Color.LightSlateGray
        End Sub
    le reste du code n'est que de l'importation de données via un formulaire excel.
    Ce que je voudrais donc, c'est que S1M et UCNVA1M soient arrondis a 2 decimales. Pas les autres valeurs

    Grand merci

  6. #6
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Et ça, ça marche pas ?

    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 OXL = Microsoft.Office.Interop.Excel
    Imports System.IO
    Imports System.Data.OleDb
    Imports System.Math
    Public Class Formcomp1m
        Dim ValUCDVA1M, ValS1M, ValUCNVA1M, ValC1M, ValA1M, ValK11M, ValK21M, ValQI1M, ValUCDVA1M2, ValUCNVA1M2, ValS1M2, ValC1M2, ValA1M2, ValK11M2, ValK21M2, ValQI1M2 As Double
        Private AppExcel As OXL.Application
        Private xlWorkbook As OXL.Workbook
        'feuille 1
        Private xlWorkSheetThree As OXL.Worksheet
        Private appPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
        Private Sub Formcomp1m_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            DecimalSeparator = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator
            UCDVA1M.Text = String.Format("{0:0.00}", ValUCDVA1M2)
            UCDVA1M.Refresh()
            UCDVA1M.BackColor = Color.Purple
        End Sub
        Private Sub UCDVA1M_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles UCDVA1M.GotFocus
            UCDVA1M.Text = String.Format("{0:0.00}", ValUCDVA1M2)
            UCDVA1M.Refresh()
            UCDVA1M.BackColor = Color.Purple
        End Sub
        Private Sub UCDVA1M_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles UCDVA1M.LostFocus
            UCDVA1M.BackColor = Color.LightSlateGray
        End Sub
        Private Sub UCNVA1M_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles UCNVA1M.GotFocus
            UCNVA1M.Text = String.Format("{0:0.00}", ValUCDVA1M2)
            UCNVA1M.Refresh()
            UCNVA1M.BackColor = Color.Purple
        End Sub
        Private Sub UCNVA1M_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles UCNVA1M.LostFocus
            UCNVA1M.BackColor = Color.LightSlateGray
        End Sub
        Private Sub S1M_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles S1M.GotFocus
            S1M.Text = String.Format("{0:0.00}", ValS1M2)
            S1M.Refresh()
            S1M.BackColor = Color.Purple
        End Sub
    Private Sub S1M_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles S1M.LostFocus
            S1M.BackColor = Color.LightSlateGray
        End Sub

  7. #7
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut
    Ben non, en fait si je clique sur le textbox, il m'affiche par defaut effectivement "0.00" mais si j'importe une valeur ou que je tape "2" dans le textbox, des que je tabule pour passer au textbox suivant, il m'affiche .... "2" et non "2.00"

  8. #8
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Citation Envoyé par Attila54 Voir le message
    Ben non, en fait si je clique sur le textbox, il m'affiche par defaut effectivement "0.00" mais si j'importe une valeur ou que je tape "2" dans le textbox, des que je tabule pour passer au textbox suivant, il m'affiche .... "2" et non "2.00"
    Salut
    essaie


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UCDVA1M.Text = ValUCDVA1M2.ToString("#0.00") 
    S1M.Text = ValS1M2.ToString("#0.00")

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    les deux propositions de formatage décrites ci dessus doivent convenir.
    Je mettrais l'une ou l'autre dans l'événement Validating du TextBox concerné.

  10. #10
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut
    alors je viens d'essayer ceci (pour tester avec S1M
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     Private Sub S1M_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles S1M.GotFocus
            S1M.Text = ""
            S1M.Refresh()
            S1M.BackColor = Color.Purple
        End Sub
        Private Sub S1M_Validating(ByVal sender As Object, ByVal e As System.EventArgs) Handles S1M.Validating
            S1M.Text = ValS1M.ToString("#0.00")
            S1M.BackColor = Color.LightSlateGray
        End Sub
    Quand j'importe les données via le formulaire excel j'j'ai toujours par exemple "-2" au lieu de "-2.00"
    Si j'entre la valeur au clavier et que je tabule, alors la je passe de "-2" à "0.00"

    Je teste une sub Validate que je lancerai par exemple via le button "load data from excel" pour voir le resultat

  11. #11
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut
    Pareil .... des que je load les data depuis le fichier excel, j'ai un joli "0.00" en lieu et place de la valeur contenue dans la cellule excel. Pour information, si je ne formate pas, la valeur s'importe bien mais n'affiche pas 2 decimales

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Comme son nom l'indique, l'événement Validating sert à valider une entrée et la formater éventuellement pour sa présentation..
    Ici tu change la valeur en cours par ValS1M , qui au passage, si elle renvoie 0, ne doit pas être renseignée.
    Essaie cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Validating
     
            Dim d As Double = CDbl(TextBox1.Text)
            TextBox1.Text = String.Format("{0:0.00}", d)
     
        End Sub

  13. #13
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Citation Envoyé par chrismonoye Voir le message
    Comme son nom l'indique, l'événement Validating sert à valider une entrée et la formater éventuellement pour sa présentation..
    Ici tu change la valeur en cours par ValS1M , qui au passage, si elle renvoie 0, ne doit pas être renseignée.
    Essaie cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Validating
     
            Dim d As Double = CDbl(TextBox1.Text)
            TextBox1.Text = String.Format("{0:0.00}", d)
     
        End Sub
    Salut Attila
    ta demande n'est pas clair
    si j'ai 123.5767 veux tu obtenir 123.57 ou 123.58

  14. #14
    Membre éclairé
    Homme Profil pro
    Technical Team Leader
    Inscrit en
    Avril 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technical Team Leader
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 235
    Par défaut
    salut moi pour arrondir j'utilise ça:
    test = Fix(11,1258415 * 10 ^ 1) / 10 ^ 1 ==> 11,1
    test = Fix(11,1258415 * 10 ^ 2) / 10 ^ 2 ==> 11,12
    test = Fix(11,1258415 * 10 ^ 3) / 10 ^ 3 ==> 11,125

    etc tu changes la valeur en fonction du nombre de chiffre que tu veux...

  15. #15
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Citation Envoyé par tijote Voir le message
    salut moi pour arrondir j'utilise ça:
    test = Fix(11,1258415 * 10 ^ 1) / 10 ^ 1 ==> 11,1
    test = Fix(11,1258415 * 10 ^ 2) / 10 ^ 2 ==> 11,12
    test = Fix(11,1258415 * 10 ^ 3) / 10 ^ 3 ==> 11,125

    etc tu changes la valeur en fonction du nombre de chiffre que tu veux...
    Salut
    et fix inconnu en vb.net

  16. #16
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Citation Envoyé par tijote Voir le message
    salut moi pour arrondir j'utilise ça:
    test = Fix(11,1258415 * 10 ^ 1) / 10 ^ 1 ==> 11,1
    test = Fix(11,1258415 * 10 ^ 2) / 10 ^ 2 ==> 11,12
    test = Fix(11,1258415 * 10 ^ 3) / 10 ^ 3 ==> 11,125

    etc tu changes la valeur en fonction du nombre de chiffre que tu veux...
    Salut
    Fix pas connu en net

  17. #17
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 197
    Par défaut
    il y a Math.Round()

  18. #18
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Vous me faites peur les gars...

    Arrondir en suivant les règles "mathématiques" :
    1,19 => 1,2
    1,11 => 1,1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Math.Round(nombre, decimal);
    Arrondir au plus grand entier inférieur :
    1,1 => 1
    1,9 => 1
    Arrondir au plus petit entier suppérieur :
    1,1 => 2
    1,9 => 2
    Exemple complet.
    Le String.Format utilise les règles de Math.Round
    Code c# : 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
     
    using System;
     
    namespace TestRound
    {
        class Program
        {
            static void Main(string[] args)
            {
                double[] arr = new double[] { 1.19, 15.02, 25.99 };
     
                foreach (double d in arr)
                {
                    Console.WriteLine("Nombre : {0}", d);
                    Console.WriteLine("Format() : {0:0.0}", d);
                    Console.WriteLine("Math.Round() : {0}", Math.Round(d, 1));
                    Console.WriteLine("Math.Floor() : {0}", Math.Floor(d * 10) / 10);
                    Console.WriteLine("Math.Ceiling() : {0}", Math.Ceiling(d * 10) / 10);
                    Console.WriteLine();
                }
     
                Console.ReadKey(true);
            }
        }
    }

    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
     
    Nombre : 1,19
    Format() : 1,2
    Math.Round() : 1,2
    Math.Floor() : 1,1
    Math.Ceiling() : 1,2
     
    Nombre : 15,02
    Format() : 15,0
    Math.Round() : 15
    Math.Floor() : 15
    Math.Ceiling() : 15,1
     
    Nombre : 25,99
    Format() : 26,0
    Math.Round() : 26
    Math.Floor() : 25,9
    Math.Ceiling() : 26

  19. #19
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut
    aurais je confondu arrondi et formatage a 2 décimales ???
    L"arrondi suivra la règle mathématique la plus classique je pense
    par exemple 2.3465 donnera 2.35 et 3.2347 donnera 3.23

    C'est plutôt le format alors qui me gène.
    Lors de saisie clavier les utilisateurs vont rarement a 2 décimales, pour faire court ils font
    2 ==> tabulation ==> textbox suivante
    moi je voudrais
    2 ==> tabulation ==> arrondi a 2 décimales (affiche donc 2.50) ==> textbox suivante

    J’espère avoir été plus clair. Si cela ne l’était pas je m'en excuse

  20. #20
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Citation Envoyé par Attila54 Voir le message
    aurais je confondu arrondi et formatage a 2 décimales ???
    L"arrondi suivra la règle mathématique la plus classique je pense
    par exemple 2.3465 donnera 2.35 et 3.2347 donnera 3.23

    C'est plutôt le format alors qui me gène.
    Lors de saisie clavier les utilisateurs vont rarement a 2 décimales, pour faire court ils font
    2 ==> tabulation ==> textbox suivante
    moi je voudrais
    2 ==> tabulation ==> arrondi a 2 décimales (affiche donc 2.50) ==> textbox suivante

    J’espère avoir été plus clair. Si cela ne l’était pas je m'en excuse
    le formatage agit comme la fonction math.round
    si le client tape les données dans le textbox on verifie la donnée à l'évenement Lostfocus du textbox detecté lorsqu'on press sur Tab

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Private Sub S1M_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles S1M.LostFocus
            Dim result As Double
            If Double.TryParse(DirectCast(sender, TextBox).Text, result) Then
                DirectCast(sender, TextBox).Text = result.ToString("#0.00")
            Else
                'efface si la donnée n'est pas numérique
                DirectCast(sender, TextBox).Text = String.Empty
            End If
        End Sub

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [VBA]Affectation d'une valeur à une cellule par une fonction
    Par lallougri dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/02/2006, 14h24
  2. retourner un vector a 2 dimensions par une fonction
    Par Psykotik dans le forum SL & STL
    Réponses: 7
    Dernier message: 18/11/2005, 17h45
  3. Réponses: 11
    Dernier message: 31/10/2005, 17h59
  4. [LG]résultat renvoyé par une fonction
    Par le 27 dans le forum Langage
    Réponses: 3
    Dernier message: 10/12/2003, 10h31
  5. tableau javascript ecrit par une fonction asp
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 03/11/2003, 08h38

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