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 :

Problème de Format pour décimales.


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Problème de Format pour décimales.
    Bonjour !

    Voila j'ai un petit souci a faire arrondir correctement un chiffre avec 4 décimales..

    Voici les détails :

    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
            'Call des variables
            Dim qteItem As String = datagridviewListeItems.CurrentRow.Cells(0).Value
            Dim prixItem As String = datagridviewListeItems.CurrentRow.Cells(4).Value ' < Le prix unitaire du produit
            Dim tauxTaxe1 As String = lblTauxTaxe1.Text / 100
            Dim tauxTaxe2 As String = lblTauxTaxe2.Text / 100
            Dim prixTotalItem As String = qteItem * prixItem ' < Multiplier la quantité du produit par le prix unitaire pour avoir le prixTotalItem a taxer
     
            'Montant des taxes selon la configuration de l'item
          Dim montantTaxe1 As String = prixTotalItem * tauxTaxe1
            montantTaxe1 = Format(CType(montantTaxe1, Double), "#0.00") 'Lorsque ce code est ajouté, le round ne se fait pas bien.. 
            Dim montantTaxe2 As String = prixTotalItem * tauxTaxe2
            montantTaxe2 = Format(CType(montantTaxe2, Double), "#0.00") 'Lorsque ce code est ajouté, le round ne se fait pas bien.. 
     
            'Calcul du prix total de l'item avec taxes
            Dim prixTotalAvecTaxes As String = Val(prixTotalItem) + Val(montantTaxe1) + Val(montantTaxe2)
            prixTotalAvecTaxes = Format(CType(prixTotalAvecTaxes, Double), "#0.00")
    Mon problème se trouve entre les lignes 9 et 12
    Lorsque je n'utilise rien pour arrondir mon chiffre voici les résultats: (Enleve ligne 9 et 11)
    http://i.imgur.com/i00yp13.png

    et lorsque je rajoute le code aux lignes 10 et 12 voici les résultats:
    http://i.imgur.com/OyDf0Sm.png

    Vérifier vis-a-vis T.P.S .. le chiffre après l'arrondissment est 8.52 .. mais il devrait rester a 8.51 .. mais celui vis a vis T.V.Q est correct... il est rester a 16.98 et non 16.99

    Merci ! Si je ne suis pas assez claire, veuillez m'en aviser

    Framework: 4.5.2 > Using VS2013

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    un string n'a aucune raison de contenir un nombre (or textbox)
    on ne fait des calculs qu'avec des nombres et on stocke les résultats dans des nombres

    les types single et double sont des approximations, il faut utiliser le type decimal pour des nombres réels
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Ma question est pourquoi que le premier résultat (taxe1) n'arrondi pas correctement... il monte .52 même si la 3e décimal est 1.. il devrait reste a .51

    Le problème semble venir de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(CType(montantTaxe1, Double), "#0.00")

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    merci de relire ma réponse au lieu de tergiverser
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Boucle matlab pour les dates : problème de format
    Par diego45 dans le forum MATLAB
    Réponses: 17
    Dernier message: 17/07/2014, 16h49
  2. Problème de format pour des chiffres à virgule
    Par bob75000 dans le forum Access
    Réponses: 5
    Dernier message: 21/07/2006, 10h42
  3. Réponses: 5
    Dernier message: 27/08/2003, 11h45
  4. Problème de Format de date
    Par titititi007 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/06/2003, 08h19
  5. Réponses: 1
    Dernier message: 06/03/2003, 11h57

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