Пользовательская строка числового формата для отображения знака

Есть ли способ указать стандартную или пользовательскую строку числового формата, чтобы всегда выводить знак, будь то + ve или -ve (хотя то, что он должен делать для нуля, я не уверен!)

    Да, ты можешь. Существует условное форматирование. См. Условное форматирование в MSDN

    например:

    string MyString = number.ToString("+0;-#"); 

    Где каждый раздел, разделенный точкой с запятой, представляет собой положительные и отрицательные числа

    или:

     string MyString = number.ToString("+#;-#;0"); 

    если вы не хотите, чтобы ноль имел знак плюса.

    Помните, что при использовании условного форматирования отрицательное значение автоматически не получает знак. Вам нужно сделать

     string MyString = number.ToString("+#;-#;0"); 

    Вы также можете использовать строки форматирования в string.Format (); строка формата отделена от индекса двоеточием (‘:’)

     string MyString = string.Format("Default format {0}, Force sign {0:+#;-#;+0}, No sign for zero {0:+#;-#;0}.", number); 

    Для числа = {+1, -1, 0} это дает –
    Формат по умолчанию 1, Знак Force +1, Без знака для нуля +1.
    Формат по умолчанию -1, Знак Силы -1, Без знака для нуля -1.
    Формат по умолчанию 0, Знак силы +0, Без знака для нуля 0.

    Вопреки другим ответам, кажется, что если вы хотите получить +1, -1, +0 (для аргументов 1, -1, 0), вам нужно использовать формат:

     String.Format("{0:+#;-#;+0}", 0)); // output: +0 

    или

     String.Format("{0:+0;-#}", 0)); // output: +0 

    Если вы используете только +#;-# он будет показывать только + (не +0 ) для 0.

    Пользовательский спецификатор «#» (на https://msdn.microsoft.com/en-us/library/0c899ak8.aspx )

    Обратите внимание, что этот спецификатор никогда не отображает нуль, который не является значащей цифрой, даже если ноль является единственной цифрой в строке. Он будет показывать ноль, только если это значимая цифра в отображаемом числе.

    Кроме того, имейте в виду, что если вам нужна десятичная точность, вам необходимо указать ее так:

     String.Format("{0:+0.##;-#.##}", 0)); // output: +0 

    или, если вы не хотите, чтобы всегда отображались, например:

     String.Format("{0:+0.00;-#.00}", 0)); // output: +0.00 

    Для числового выражения любого типа:

     +###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;-###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;0 

    Используйте три части для трех случаев: положительные, отрицательные, ноль

    Другие аспекты примера:

    • Ноль не подписан. Вы могли бы показать это как угодно, например, «ноль».

    • Абсолютные значения меньше единицы имеют начало 0 до десятичной точки. Откорректируйте вкус.

    • Число цифр – для самых больших и наименьших абсолютных десятичных значений. Откорректируйте вкус.

    • Символ десятичной точки зависит от культуры. .NET заменяет.

    • Групповые разделители являются необязательными. Характер специфичен для культуры. .NET заменяет. (Позиции также зависят от культуры, но это контролируется только вашей строкой формата.) Вы также используете любой другой символ, кроме специальных символов для Format (включая, # 0).

    Давайте будем гением компьютера.