2010-02-26 7 views
6

Jaki jest najlepszy sposób sformatowania wartości dziesiętnej dla ciągu znaków w celu wyświetlenia interfejsu w odpowiednich informacjach o kulturze?Format dziesiętny na ciąg w prawidłowej informacji o kulturze

+1

Co jest nie tak z 'myDecimal.ToString()'? – Joey

+0

Ładowanie obiektu nHilbernate z bazy danych, właściwość jest dziesiętna i podczas wywoływania toString() formatowana jest poprawnymi miejscami dziesiętnymi. Jednak przy zapisywaniu ustawienia tej samej właściwości z tekstu np. allocation.Price = Decimal.Parse (price, CultureInfo.CurrentCulture); ale po ustawieniu tej opcji i przydziału wywołań.Price.toString() miejsca dziesiętne nie zostały dodane. np. Po przecinku 15 chcesz 15.00 ale toString daje tylko 15. Dziwne? – c00ke

Odpowiedz

8

Dodaj do formatu toString: myDecimal.ToString("#.00") lub myDecimal.ToString("C"). Zobacz http://msdn.microsoft.com/en-us/library/427bttx3.aspx

+0

Właściwość nHibernate była dziesiętna? thisfoer opcja formatu nie była dostępna w metodzie toString. Teraz tworzymy zmienną dziesiętną i używamy twoich odpowiedzi i robimy przyjemność. Twoje zdrowie! – c00ke

+0

jeśli jest to Nullable , to możesz albo użyć właściwości .Value, albo rzutować na dziesiętne (jeśli masz pewność, że nie jest pusta) –

1

zastosowanie:

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

Który będzie działać tylko, jeśli CurrentCulture jest en-US ... – Unsliced

+2

co z tego? On nie prosi o dynamiczną cultureInfo. – NetSide

+0

JavaScript nie jest "globalny" świadomy, więc użyłem .ToString ("#. 00", New CultureInfo ("en-GB", False)) – Zymotik

0

Ponadto, jeśli chcesz korzystać z kultury określonej przez użytkownika można użyć:

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

string userInfo = "en-US";

Powiązane problemy