2011-03-14 15 views
11

我想格式化的整數i(-100 < i < 100),使得:如何在C#格式化一個Int時強制標誌

-99格式爲 「-99」
9格式爲 「+09」
-1格式爲 「-01」
0格式爲 「+00」

i.ToString("00") 

是接近,但不添加時,int是積極的+號。

有沒有辦法做到這一點,但沒有明確區分 i >= 0i < 0

+0

看到http://stackoverflow.com/questions/348201/custom-numeric-format-string-to-always-display-the-sign – Equiso 2011-03-14 16:14:02

+1

[自定義數字格式字符串的可能的複製總是顯示符號](https://stackoverflow.com/questions/348201/custom-numeric-format-string-to-always-display-the-sign) – 2017-06-23 07:50:05

回答

28

嘗試這種情況:

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

當由分號(;)分隔的第一部分將適用於正值和零(0)時,第二部分將適用於負值,第三部分將適用於零(0)。

請注意,如果要將零格式設置爲與正數相同的方式,則可以省略第三部分。如果您希望將格式與正片格式相同的負格片也可以省略第二格片段,但希望格式不爲零。

參考:MSDN Custom Numeric Format Strings: The ";" Section Separator

+1

OP希望'0'顯示爲「+00」,而不是「00」。 – LukeH 2011-03-14 16:20:32

+0

@LukeH謝謝,修復! – squillman 2011-03-14 16:24:21

+0

看來'i.ToString(「+ 00; -00」);'就夠了。 0在這裏被認爲是積極的。 – Rodolphe 2015-02-11 16:42:54

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

+0

OP要'0'顯示爲「+00」 ,不是簡單的「00」。 – LukeH 2011-03-14 16:20:10

+0

@LukeH你是對的,我的錯誤,修改答案來反映這一點。 – 2011-03-14 16:21:51

相關問題