Quelle est la meilleure façon de mettre en forme une quantité décimale en chaîne pour l'affichage de l'interface utilisateur dans les informations de culture correctes?Format décimal à chaîne dans les informations de culture correctes
Répondre
Ajouter un format à l'ToString: myDecimal.ToString("#.00")
ou myDecimal.ToString("C")
. Voir http://msdn.microsoft.com/en-us/library/427bttx3.aspx
La propriété nHibernate était Decimal? De ce fait, l'option de format n'était pas disponible sur la méthode toString. Maintenant créer une variable décimale et en utilisant votre réponse et fonctionne un régal. à votre santé! – c00ke
si c'est un
utilisation:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false);
Pourquoi pas decimalVar.ToString("F2", CultureInfo.CurrentCulture);
. Pour les chaînes de format (la « F2 » partie) et ce qu'ils font, vous pouvez aussi Standard Numeric Format Strings et Custom Numeric Format Strings
, si vous souhaitez utiliser une culture spécifiée par l'utilisateur, vous pouvez utiliser:
yourDecimal.ToString("N2", CultureInfo.CreateSpecificCulture(userInfo);
string userInfo = "en-US";
Qu'est-ce qui ne va pas avec 'myDecimal.ToString()'? – Joey
Chargement de l'objet nHibernate à partir de la base de données, la propriété est décimale et lors de l'appel à toString(), il est formaté avec des décimales correctes. Cependant, lors de l'enregistrement, définissez la même propriété à partir du texte, par exemple. allocation.Price = Decimal.Parse (prix, CultureInfo.CurrentCulture); mais une fois que ce paramètre est défini et que l'allocation d'appels.Prix.toString() décimales n'est pas ajoutée. par exemple après l'analyse décimale 15 voulez 15,00 mais toString donne juste 15. Étrange? – c00ke