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

ASP.NET Discussion :

Changer la culture


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut Changer la culture
    Bonjour tout le monde.

    Ma question porte sur le changement de culture au niveau des chiffres.
    Voilà, je voudrais afficher les nombres comme suit :
    123.456,78. (En gros séparateur de milliers--> points, séparateur décimales--> virgule).

    J'ai utilisé le InvariantCulture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string result = maDecimale.ToString("N",CultureInfo.InvariantCulture);
    Mais cela me renvoie l'inverse, cad --> 123,456.78.
    Avec le CurrentCulture j'obtiens ceci --> 123 456,78.

    N'existe t'il pas une globalisation qui me permettrait d'obtenir le bon formatage pour mes décimales (je peux passer par une manipulation de mon string pour arriver au bon formatage mais s'il existe un truc je préférerais m'en abstenir) ?

    Je vous remercie de vos réponses.

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tu peux spécifier la culture dans le web.config

  3. #3
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    Ouaip, je peux aussi faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CultureInfo culture = new CultureInfo("fr-FR");//C'est là le seul soucis, trouver la BONNE culture ^^
    string result = maDecimale.ToString("N",culture);
    Espagnol, Allemand, Arabe, Russe, Anglais... Enfin vous voyez le topo quoi ^^.

  4. #4
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    La classe System.Globalization.NumberFormatInfo devrait te suffire

  5. #5
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    Tu m'enlèves les mots de la bouche, je viens justement de trouver la réponse ^^ :

    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
     
     
                    CultureInfo culture = new CultureInfo("");
                    culture = CultureInfo.InvariantCulture;
                    NumberFormatInfo numberFormat = new NumberFormatInfo();
     
     
                    numberFormat = culture.NumberFormat;
                    numberFormat.CurrencyDecimalSeparator = ",";
                    numberFormat.CurrencyGroupSeparator = ".";
                    numberFormat.NumberDecimalSeparator = ",";
                    numberFormat.NumberGroupSeparator = ".";
                    culture.NumberFormat = numberFormat;
     
                    return invariantDecimal.ToString("N", culture);
    D'ailleurs je vous donne la source qui m'a permis de régler mon problème :
    NumberFormatInfo

    Edit: Oups pas bon, il me balance une erreur en me disant que mon instance est read-only... Pourtant je vois que les propriétés peuvent être settées...

    ???

    Edit2: Ok, le soucis vient du fait que InvariantCulture est read-only. Il suffit que je mette une culture équivalente à InvariantCulture ("en-US" il me semble, et ce sera nickel).

  6. #6
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    Et voili voilou :

    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
     
     
                    CultureInfo culture = new CultureInfo("en-US");
                    NumberFormatInfo numberFormat = new NumberFormatInfo();
     
     
                    numberFormat = culture.NumberFormat;
     
                    numberFormat.CurrencyDecimalSeparator = ".";
                    numberFormat.CurrencyGroupSeparator = ",";
     
                    numberFormat.NumberDecimalSeparator = ",";
                    numberFormat.NumberGroupSeparator = ".";
                    culture.NumberFormat = numberFormat;
     
                    return invariantDecimal.ToString("N", culture);
    Merci de vos réponses.

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

Discussions similaires

  1. Changer la culture pour un nouveau process non .net
    Par AKsha dans le forum Framework .NET
    Réponses: 0
    Dernier message: 22/06/2011, 16h57
  2. Changer la culture d'un site via un lien hypertext
    Par jetronic dans le forum ASP.NET
    Réponses: 4
    Dernier message: 19/11/2007, 14h15
  3. [C#] Changer la culture, juste pour un Convert
    Par Louis-Guillaume Morand dans le forum Framework .NET
    Réponses: 6
    Dernier message: 25/10/2007, 16h43
  4. Changer la culture d'un ascx par programme.
    Par jab dans le forum ASP.NET
    Réponses: 0
    Dernier message: 04/09/2007, 14h53
  5. changer la culture de mon application
    Par cortex024 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/04/2007, 09h41

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