我想格式化一个整数i(-100 < i < 100
),这样:
-99格式为“-99”
9种格式为“+09”
-1格式为“-01”
0格式为“+00”
i.ToString("00")
接近但在int为正时不添加+号。
有没有办法在没有明确区分的情况下做到这一点
i >= 0
和i < 0
?
答案 0 :(得分:30)
试试这个:
i.ToString("+00;-00;+00");
当用分号(;)分隔时,第一部分将应用于正值而零(0),第二部分将应用于负值,第三部分将应用于零(0)。
请注意,如果希望零的格式与正数相同,则可省略第三部分。如果您想要将负片格式设置为与正片格式相同,但是想要使用不同的格式为零,则也可以省略第二部分。
参考:MSDN Custom Numeric Format Strings: The ";" Section Separator
答案 1 :(得分:4)
您可以使用类似的格式字符串来实现它。
i.ToString("+00;-00");
这将产生以下输出..
2.ToString("+00;-00"); // +02
(-2).ToString("+00;-00"); // -02
0.ToString("+00;-00"); // +00
答案 2 :(得分: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