【发布时间】:2011-03-14 16:06:33
【问题描述】:
我想格式化一个整数 i (-100 < i < 100),这样:
-99 格式为“-99”
9 种格式为“+09”
-1 格式为“-01”
0 格式为“+00”
i.ToString("00")
接近但在 int 为正数时不添加 + 号。
有什么方法可以做到这一点而不明确区分
i >= 0 和 i < 0?
【问题讨论】:
我想格式化一个整数 i (-100 < i < 100),这样:
-99 格式为“-99”
9 种格式为“+09”
-1 格式为“-01”
0 格式为“+00”
i.ToString("00")
接近但在 int 为正数时不添加 + 号。
有什么方法可以做到这一点而不明确区分
i >= 0 和 i < 0?
【问题讨论】:
试试这个:
i.ToString("+00;-00;+00");
当用分号 (;) 分隔时,第一部分适用于正值,第二部分适用于负值,第三部分适用于零 (0)。
请注意,如果您希望零的格式与正数相同,则可以省略第三部分。如果您希望负数的格式与正数相同,但希望零的格式不同,则第二部分也可以省略。
参考:MSDN Custom Numeric Format Strings: The ";" Section Separator
【讨论】:
0 显示为“+00”,而不是普通的“00”。
i.ToString("+00;-00"); 就够了。 0 在这里被认为是积极的。
你也许可以用这样的格式字符串来做到这一点..
i.ToString("+00;-00");
这将产生以下输出..
2.ToString("+00;-00"); // +02
(-2).ToString("+00;-00"); // -02
0.ToString("+00;-00"); // +00
【讨论】:
0 显示为“+00”,而不是普通的“00”。
试试这样的:
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
【讨论】: