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

Windows Forms Discussion :

[VB.NET] Forcer l'affichage de deux décimales pour un nombre double.


Sujet :

Windows Forms

  1. #1
    Membre expert
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Points : 3 218
    Points
    3 218
    Par défaut [VB.NET] Forcer l'affichage de deux décimales pour un nombre double.
    Bonjour,

    Dans notre base de données Access (obtenue de l'exportation d'une base SQL Server 2005), nos valeurs de prix sont stockées en doubles.

    J'ai un ennui avec l'impression des prix: lorsque la valeur est entière ou arrondie à une dizaine près, il manque un ou deux zéros et je dois les faire apparaître. J'ai donc essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Math.Round(prix,2)
    Rien à faire, je n'obtiens que 8,5$, 10$, etc. Y a-t-il un moyen de forcer l'affichage des deux décimales? Merci à l'avance.

  2. #2
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Et en faisant

  3. #3
    Membre expert
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Points : 3 218
    Points
    3 218
    Par défaut
    Merci! J'ai essayé, mais j'obtiens un message d'erreur:

    Impossible d'effectuer un cast d'un objet de type 'System.String' en type 'System.IformatProvider'.
    J'ai sûrement fait une erreur quelque part...?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Points : 343
    Points
    343
    Par défaut
    Bonjour,
    oui il y a un malentendu ^^'
    La variable "prix" indiqué par FRED.G doit être un double.
    mais si tu recupere une string, alors personnellement je le mettrai en double pour le recaster en string :/ mais je suppose qu'il y a une meilleur solution que celle-ci :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    Convert.ToDouble(prix).ToString("C2")

  5. #5
    Membre expert
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Points : 3 218
    Points
    3 218
    Par défaut
    Bonjour,

    En fait, ma variable est déjà un double, mais je veux l'afficher avec 2 décimales puisque c'est pour représenter un prix en dollars. J'espère que ça vous aide...

  6. #6
    Membre expert
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Points : 3 218
    Points
    3 218
    Par défaut
    Bonjour,

    Information à jour: en faisant ceci

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    monDouble.ToString("C")
    ' au lieu de C2, pour 'currency' (monétaire)

    Non seulement j'ai 2 décimales, mais la devise s'affiche. Seulement, je voudrais savoir si ça s'ajuste automatiquement aux paramètres régionaux de Windows (par exemple, aux États-Unis le signe de dollar apparaît AVANT le prix)...

  7. #7
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Ben oui normalement ça s'ajuste, c'est fait pour ça il me semble.
    Je t'avais indiqué C2 au lieu de C car chez moi le 2 servait à spécifier le nombre de décimales...

  8. #8
    Membre expert
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Points : 3 218
    Points
    3 218
    Par défaut
    Alors, dans ce cas, non seulement cela règle-t-il mon problème, mais mon code est simplifié, car je voulais faire à la base une concaténation de la valeur convertie en chaîne avec la devise selon des options choisies par l'utilisateur.


  9. #9
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Bonjour,

    Pour info...

    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ' les 2 décimales s'affichent
    monDouble.ToString("0.00")
    
     
    ' les 2 décimales s'affichent si <> 0
    monDouble.ToString("0.##")

  10. #10
    Membre expert
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Points : 3 218
    Points
    3 218
    Par défaut

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/05/2012, 12h53
  2. Affichage de deux requetes pour comparaison
    Par Myogtha dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/02/2009, 14h34
  3. Décimales d'un nombre double
    Par Cheps dans le forum C++
    Réponses: 1
    Dernier message: 03/04/2008, 21h35
  4. [VB.NET] forcer l'affichage pendant un traitement
    Par lacsap49 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/06/2006, 19h26
  5. Réponses: 2
    Dernier message: 17/10/2005, 11h29

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