2010-02-26 9 views
6

Was ist der beste Weg, um einen Dezimalbetrag für die UI-Anzeige in der richtigen Kultur Info Zeichenfolge formatieren?Format Dezimal zu Zeichenfolge in richtigen Kultur Info

+1

Was ist falsch mit 'myDecimal.ToString()'? – Joey

+0

Laden nHibernate-Objekt aus der Datenbank, Eigenschaft ist dezimal und beim Aufruf von toString() wird es mit korrekten Dezimalstellen formatiert. Allerdings beim Speichern der gleichen Eigenschaft aus Text z. allocation.Price = Decimal.Parse (Preis, CultureInfo.CurrentCulture); aber sobald dies gesetzt ist und Ruf allokation.Price.toString() Dezimalstellen nicht hinzugefügt. zB nach Dezimalanalyse 15 will 15.00 aber toString gibt nur 15. Seltsam? – c00ke

Antwort

8

ein Format zum ToString hinzufügen: myDecimal.ToString("#.00") oder myDecimal.ToString("C"). Siehe http://msdn.microsoft.com/en-us/library/427bttx3.aspx

+0

nHibernate Eigenschaft war Dezimal? Daher war die Formatoption für die toString-Methode nicht verfügbar. Erstelle jetzt dezimale Variable und benutze deine Antwort und arbeite ein Vergnügen. Prost! – c00ke

+0

Wenn es eine Nullable ist, dann könnten Sie entweder die .Value-Eigenschaft verwenden oder in Dezimalzahlen umwandeln (wenn Sie sicher sind, dass es nicht null ist) –

1

Verwendung:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false); 
+0

Das funktioniert nur, wenn die CurrentCulture en-US ist ... – Unsliced

+2

na und? Er fragt nicht nach dynamischer cultureInfo. – NetSide

+0

JavaScript ist nicht 'Global' bekannt, also habe ich .ToString ("#. 00", New CultureInfo ("en-GB", Falsch)) – Zymotik

0

Auch, wenn Sie eine Kultur vom Benutzer angegeben verwenden möchten, können Sie verwenden:

yourDecimal.ToString("N2", CultureInfo.CreateSpecificCulture(userInfo);

string userInfo = "en-US";