Пользовательское Обозначение денежной единицы и десятичные разряды с помощью десятичного числа. ToString (“C”) и CultureInfo

У меня есть проблема с 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") это решило бы мою проблему

Заранее спасибо.

8
задан Korayem 13 June 2016 в 12:27
поделиться

3 ответа

Чтобы получить такой формат, как 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") .

16
ответ дан 5 December 2019 в 06:37
поделиться

Если я правильно понял ваш вопрос, вы хотите заменить $ на RM. Если это так, то вам нужно передать пользовательский формат...

lblPaids.Text = paid.ToString("C", LocalFormat);
6
ответ дан 5 December 2019 в 06:37
поделиться

используйте эту строку формата :

#,##0.00 $;#,##0.00'- $';0 $
decimal paid = Convert.ToDecimal(dr["TotalPaids"]);
lblPaids.Text = paid.ToString("#,##0.00 $;#,##0.00'-  $';0 $");
2
ответ дан 5 December 2019 в 06:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: