2012-12-14 23 views

Odpowiedz

27

Korzystając NumberStyles.Currency zamiast NumberStyles.AllowCurrencySymbol

if (decimal.TryParse(s, NumberStyles.Currency, germanCulture, out d)) 

i wyjście dla ciebie kodu będzie:

Decimal value: 12.00 
+0

Thanks a lot :) –

+0

@TimSchmelter zapraszamy :) – Habib

+6

Trochę więcej informacji, aby wyjaśnić, dlaczego tak jest: NumberStyles.AllowCurrencySymbol dopuszcza tylko symbol waluty mają być ignorowane jako część procesu analizowania. Dodatkowy spacja i separator dziesiętny wymagają dodatkowych flag, aby je włączyć: AllowDecimalPoint i AllowTrailingWhite. Waluta łączy te flagi (i kilka innych) [link] (http://msdn.microsoft.com/en-us/library/0xh24xh4.aspx) –

0

Spróbuj tego;

string.Format(new CultureInfo("en-SG", false), "{0:c0}", 123423.083234); 

Konwersja 123423.083234 na format 1,23,423 USD.

+1

Musiałem przeanalizować ciąg zawierający symbol waluty dziesiętnej. Konwertujesz dane dziesiętne na ciąg znaków. To jest inny wymóg. Jednak już na nie odpowiedziano. –