Подтвердить что ты не робот

Формат Отрицательные числа в скобках, но не с символом $?

Я видел по всему Интернету формат НЕГАТИВНОГО двойного значения с круглой скобкой с символом $, т.е. тип валюты.

Я ищу строку формата .NET для форматирования

12345.67 = 12,345.67

-12345.67 = (12,345.67)
4b9b3361

Ответ 1

MSDN на условное форматирование на помощь!

Вы можете указать сразу три разных раздела строки формата, разделяя их точкой с запятой. Если вы укажете два раздела строки форматирования, первый используется для положительных и нулевых значений, а второй - для отрицательных значений; если вы используете три секции, первый используется для положительных значений, второй для отрицательных значений, а третий для нулевых значений.

Выход из этого кода С#:

        string fmt1 = "#,##0.00";
        string fmt2 = "#,##0.00;(#,##0.00)";
        double posAmount = 12345.67;
        double negAmount = -12345.67;
        Console.WriteLine("posAmount.ToString(fmt1) returns " + posAmount.ToString(fmt1));
        Console.WriteLine("negAmount.ToString(fmt1) returns " + negAmount.ToString(fmt1));
        Console.WriteLine("posAmount.ToString(fmt2) returns " + posAmount.ToString(fmt2));
        Console.WriteLine("negAmount.ToString(fmt2) returns " + negAmount.ToString(fmt2));

является:

posAmount.ToString(fmt1) returns 12,345.67
negAmount.ToString(fmt1) returns -12,345.67
posAmount.ToString(fmt2) returns 12,345.67
negAmount.ToString(fmt2) returns (12,345.67)

Ответ 2

Вы можете использовать функцию FormatNumber:

FormatNumber(-100, UseParensForNegativeNumbers:=TriState.True)

вернет "(100)"

Там больше на MSDN