Как я могу изменить форматер валюты, чтобы разрешить отрицательные суммы денег в C #? - PullRequest
2 голосов
/ 24 июня 2010

Если у меня есть что-то вроде:

   Decimal moneyAmount = -1522;

, а затем позвоните

moneyAmount.toString("c");

Будет возвращено что-то вроде:

* * 1008 ($ 1522)

Вместо этого я хотел бы, чтобы был отрицательный знак и не было парантезов. Как я могу изменить, какой поставщик формата я отправляю toString (), чтобы я мог добиться следующего эффекта:

- $ 1522

1 Ответ

8 голосов
/ 24 июня 2010

Взято из: http://keithdevens.com/weblog/archive/2007/Jun/04/C-sharp.currency

// set currency format
string curCulture = System.Threading.Thread.CurrentThread.CurrentCulture.ToString();
System.Globalization.NumberFormatInfo currencyFormat = new System.Globalization.CultureInfo(curCulture).NumberFormat;
currencyFormat.CurrencyNegativePattern = 1;

number.ToString("c", currencyFormat);
// or string.Format(currencyFormat, "{0:c}", number);
...