在c#中格式化Int时如何强制使用符号

时间:2011-03-14 16:06:33

标签: c# tostring

我想格式化一个整数i(-100 < i < 100),这样:

-99格式为“-99”
9种格式为“+09”
-1格式为“-01”
0格式为“+00”

i.ToString("00")

接近但在int为正时不添加+号。

有没有办法在没有明确区分的情况下做到这一点 i >= 0i < 0

3 个答案:

答案 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

查看MSDN documentation for Custom Numeric Format Strings

答案 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