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 :

fonction de calcul [Débutant]


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut fonction de calcul
    Bonjour à tous.

    j'ai une DataGridView qui contient 14 colonnes et X lignes.
    Les données sont stockés dans une base Access 2007, dans une table dont les champs sont monétaires.
    La colonne 1 est le clé primaire, la colonne 2 à 13 contiennent les montants versés par mois,
    et la colonne 14 sert à faire le Total des montants des 12 mois.
    Je veux dans un TextBox faire la somme des Totaux. Mon problème c'est que la formule que j'ai trouvé
    ne prend pas en considération les chiffres après la virgule (c.à.d 15.200 + 14.500 ça donne 29.000 au lieu de 29.700).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            For I = 0 To DG1.RowCount - 1
                            TextBox1.Text = Format(Val(DG1c.Rows(I).Cells(14).FormattedValue) + Val(TextBox1.Text), "0.000") ' 3Chiffres après la virgule
                       Next I

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Il ne faut JAMAIS utiliser Val() quand la virgule est le symbole décimal. Tu peux passer par Cdbl ou utiliser Double.parse() ou Double.tryparse. En principe, TryParse ne plante pas le programme en cas d'échec de la conversion, mais cela n'interdit pas de mettre des garde-fous pour ne pas planter ailleurs si tu n'as pas un nombre à la fin.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut
    Merci pour votre attention mais:

    **** j'ai utilisé CDbl et voila le message d'erreur

    Une exception non gérée du type 'System.InvalidCastException' s'est produite dans Microsoft.VisualBasic.dll

    Informations supplémentaires : La conversion de la chaîne "" en type 'Double' n'est pas valide.

    **** pour Double.parse() voila le message d'erreur

    Une exception non gérée du type 'System.FormatException' s'est produite dans mscorlib.dll

    Informations supplémentaires : Le format de la chaîne d'entrée est incorrect.

    **** pour Double.tryparse() ça n'a pas marché.

  4. #4
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut
    problème résolu


    Dim I As Integer = 0
    Dim J As Double = 0


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      For I = 0 To DG1.RowCount - 1
                    J = Format(CDbl(DG1.Rows(I).Cells(14).FormattedValue + J), "0.000")
            Next I
            TextBox1.Text = J

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par JetLibre Voir le message
    Merci pour votre attention mais:

    **** pour Double.parse() voila le message d'erreur

    Une exception non gérée du type 'System.FormatException' s'est produite dans mscorlib.dll

    Informations supplémentaires : Le format de la chaîne d'entrée est incorrect.

    **** pour Double.tryparse() ça n'a pas marché.
    Cela prend au moins 2 paramètres:

    https://msdn.microsoft.com/fr-fr/lib...v=vs.110).aspx

    Dans l'éditeur VB; un clic sur Tryparse et
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

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

Discussions similaires

  1. Fonction de calcul (convertisseur)
    Par MeRc|LeSs dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 28/12/2005, 18h24
  2. inversion de fonction de calcul
    Par jarko dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 16/12/2005, 18h31
  3. Réponses: 6
    Dernier message: 22/11/2005, 17h08
  4. Modifier un champs texte avec une fonction PHP (calcul TVA)
    Par Stella2809 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 00h55
  5. fonction qui calcule la factorielle ?
    Par piff62 dans le forum C
    Réponses: 8
    Dernier message: 27/02/2005, 11h00

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