7
votes

String.format considère les paramètres régionaux ou pas?

est-il vrai que string.format fonctionne de 2 façons: Si nous utilisons un format intégré tel que C, N, P .... Cela prendra en compte les paramètres locaux? Si nous utilisons un code de format personnalisé tel que #, ## 0.000, il ne prendra pas en compte les paramètres locaux?

dans mon code, j'utilise la méthode comme celle-ci

string.format ("{0: #. ## 0.000}", valeur);

Parce que mon pays utilise la virgule comme séparateur décimal

Mais le résultat est toujours: 1,234.500 comme s'il considère le point de séparateur décimal.

aide s'il vous plaît!


1 commentaires

Avez-vous déjà pris la peine de regarder la documentation de String.Format?


3 Réponses :


19
votes

Vous voulez utiliser cultureInfo : xxx

en utilisant string.format : xxx

puisque vous êtes à Hanoi (de profil), j'ai utilisé le code du Vietnam, qui est < code> vn-vn .


0 commentaires

4
votes

Cela fonctionne. La valeur formatée est 123,456,789 qui est correct par es-es xxx

Notez que le , et . utilise un style 'standard' en-nous, mais .tostring () et string.format () avec un fournisseur de format fait la bonne chose.


0 commentaires

0
votes

Vous devez vous assurer que votre thread utilise la culture correcte:

        Thread.CurrentThread.CurrentCulture = CultureInfo.CurrentCulture
        Thread.CurrentThread.CurrentUICulture = CultureInfo.CurrentCulture
        FrameworkElement.LanguageProperty.OverrideMetadata(GetType(FrameworkElement), New FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)))


3 commentaires

Que se passe-t-il si vous essayez de montrer des chiffres, des dates, etc. dans différentes cultures dans le même fil?


@CHRISFOX Il va dépendre si vous réussissez ou non. :-)


J'ai fait :-) 1234567890