Как заставить знак при форматировании Int в С#

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

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

i.ToString("00")

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

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

Ответ 1

Попробуйте следующее:

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

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

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

Ссылка: Строки пользовательского числового формата MSDN: ";" Сепаратор разделов

Ответ 3

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

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