Как заставить знак при форматировании Int в C # - PullRequest
12 голосов
/ 14 марта 2011

Я хочу отформатировать целое число i (-100 < i < 100), например:

-99 форматируется как "-99"
9 форматов как "+09"
-1 форматируется как "-01"
0 форматирует как "+00"

i.ToString("00")

близко, но не добавляет знак +, когда int положительный.

Есть ли способ сделать это без явного различия между i >= 0 и i < 0?

Ответы [ 3 ]

30 голосов
/ 14 марта 2011

Попробуйте:

i.ToString("+00;-00;+00");

Если разделить точкой с запятой (;), первый раздел будет применяться к положительным значениям, а ноль (0), второй раздел будет применяться к отрицательным значениям, третий раздел будетприменить к нулю (0).

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

Ссылка: MSDN Строки произвольного числового формата: «;»Разделитель секций

4 голосов
/ 14 марта 2011

Возможно, вам удастся сделать это с помощью строки формата, например, так.

i.ToString("+00;-00");

Это даст следующий вывод ..

2.ToString("+00;-00");    // +02
(-2).ToString("+00;-00"); // -02
0.ToString("+00;-00");    // +00

Ознакомьтесь с документацией MSDN для строк пользовательского числового формата

3 голосов
/ 14 марта 2011

Попробуйте что-то вроде этого:

i.ToString("+00;-00");

Некоторые примеры:

Console.WriteLine((-99).ToString("+00;-00"));    // -99
Console.WriteLine(9.ToString("+00;-00"));        // +09
Console.WriteLine((-1).ToString("+00;-00"));     // -01
Console.WriteLine((0).ToString("+00;-00"));      // +00
...