У меня есть проблема с decimal.ToString("C")
переопределение. В основном то, что я хочу сделать, следующие:
CultureInfo usCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = usCulture;
NumberFormatInfo LocalFormat = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
LocalFormat.CurrencySymbol = "RM";
Я хочу сделать выше кода функцию (переопределите ToString ("C")), посредством чего, когда следующий код выполнен:
decimal paid = Convert.ToDecimal(dr["TotalPaids"]);
lblPaids.Text = paid.ToString("C");
Результатами был бы RM4,900.00 вместо 4 900,00$
Как я создаю переопределение для decimal.ToString("C")
это решило бы мою проблему
Заранее спасибо.
Чтобы получить такой формат, как 11,123,456,00 RM, вам также необходимо установить следующие свойства
CurrentCulture modified = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name);
Thread.CurrentThread.CurrentCulture = modified;
var numberFormat = modified.NumberFormat;
numberFormat.CurrencySymbol = "RM";
numberFormat.CurrencyDecimalDigits = 2;
numberFormat.CurrencyDecimalSeparator = ".";
numberFormat.CurrencyGroupSeparator = ",";
Если вы сделаете это при запуске приложения, тогда формат ms-MY должен быть похож на en-US, но с символом валюты RM каждый раз, когда вы звоните. метод ToString ("C")
.
Если я правильно понял ваш вопрос, вы хотите заменить $ на RM. Если это так, то вам нужно передать пользовательский формат...
lblPaids.Text = paid.ToString("C", LocalFormat);
используйте эту строку формата :
#,##0.00 $;#,##0.00'- $';0 $
decimal paid = Convert.ToDecimal(dr["TotalPaids"]);
lblPaids.Text = paid.ToString("#,##0.00 $;#,##0.00'- $';0 $");