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 :

[C#] Parse d'un décimal et paramètres internationaux


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 20
    Par défaut [C#] Parse d'un décimal et paramètres internationaux
    Bonjour
    Je veux récupérer le contenu de plusieurs textbox pour faire un calcul.
    Je prends donc chacune d'entre elle et je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Decimal dVol = Decimal.Parse(txtLength.Text) * Decimal.Parse(txtWidth.Text) * Decimal.Parse(txtHeight.Text);
    Ca fonctionne si je saisi des valeurs avec des virgules mais pas avec des points or je voudrais que ça ne fonctionne qu'avec des points.
    Existe-t'il de définir le point comme séparateur par défaut sans avoir besoin de remplacer chaque point par une virgule.
    Merci

  2. #2
    Membre éclairé Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Par défaut
    Le plus facile, c'est de créer une classe qui hérite de textbox. La tu dérive le toString et dedans, t'appele la classe de base, et sur le résultat, tu fait:


  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 20
    Par défaut
    Justement c'est ce que je voudrai éviter de faire. Je voudrai carrément dire que j'utilise le point partout.
    Merci qd même.

  4. #4
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    Soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Threading.Thread.CurrentThread.CurrentCulture = New Globalization.CultureInfo("en-us")
    mais c'est un peuviolent car ca risque de changer beaucoup de choses

    Soit

    tu cree ta propre culture, mais quoiqu'il arrive ca sera point OU vigule en tant que separateur.

    Soit

    tu changes dans windows les parametres nationnaux

    Il est pas si mal finalement ce s.replace(",",".")....

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 20
    Par défaut
    Oui finalement je crois que je vais utiliser le replace.
    Merci

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CultureInfo culture = new CultureInfo( "en-us" );
    Decimal dVol = Decimal.Parse( txtLength.Text, culture ) *
                   Decimal.Parse( txtWidth.Text, culture ) *
                   Decimal.Parse( txtHeight.Text, culture );
    Inutile de toucher à la culture du thread (c'est bourrin et crade :), tous les objets de .NET concernés par les paramètres régionaux ont des méthodes permettant d'indiquer la culture.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 20
    Par défaut
    Ah sympa ça. Cool!
    Merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/04/2014, 14h31
  2. Parse de double avec point décimal
    Par olibara dans le forum C#
    Réponses: 7
    Dernier message: 28/11/2009, 08h59
  3. Réponses: 4
    Dernier message: 14/05/2008, 10h40
  4. Réponses: 3
    Dernier message: 20/07/2007, 17h12
  5. [regex] "parsing de paramètres"
    Par Spoutnik dans le forum Langage
    Réponses: 8
    Dernier message: 25/07/2006, 13h39

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