2012-12-14 12 views

Trả lời

27

Sử dụng NumberStyles.Currency thay vì NumberStyles.AllowCurrencySymbol

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

và đầu ra cho bạn mã sẽ là:

Decimal value: 12.00 
+0

Thanks a lot :) –

+0

@TimSchmelter, Bạn được chào đón :) – Habib

+6

Một chút thêm thông tin để giải thích tại sao điều này là như vậy: NumberStyles.AllowCurrencySymbol chỉ cho phép các ký hiệu tiền tệ sẽ bị loại bỏ như một phần của quá trình phân tích cú pháp. Khoảng trắng bổ sung và dấu tách thập phân bổ sung cần thêm cờ để bật chúng: AllowDecimalPoint và AllowTrailingWhite. Tiền tệ kết hợp những lá cờ này (và một số khác) [link] (http://msdn.microsoft.com/en-us/library/0xh24xh4.aspx) –

0

Hãy thử điều này;

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

Nó sẽ chuyển đổi 123423.083234 thành định dạng $ 1,23,423.

+1

Tôi cần phải phân tích cú pháp một chuỗi có ký hiệu tiền tệ thành thập phân. Bạn đang chuyển đổi một số thập phân cho chuỗi. Đó là một yêu cầu khác. Tuy nhiên, nó đã được trả lời. –