2011-03-14 12 views
11

Chcę sformatować liczbę całkowitą I (-100 < i < 100), tak że:Jak zmusić znak przy formatowaniu int w C#

-99 formaty jak "-99"
9 formaty jak "+09"
-1 formaty jak "-01"
0 formaty jak "+00"

i.ToString("00") 

jest blisko, ale nie dodaje znak +, gdy int jest dodatni.

Czy jest jakiś sposób, aby to zrobić bez wyraźnego rozróżnienia między i >= 0 i i < 0?

+0

zobaczyć http://stackoverflow.com/questions/348201/custom-numeric-format-string-to-always-display-the-sign – Equiso

+1

Możliwy duplikat [Niestandardowy ciąg formatu liczbowego do zawsze wyświetlaj znak] (https://stackoverflow.com/questions/348201/custom-numeric-format-string-to-always-display-the-sign) –

Odpowiedz

28

Spróbuj tego:

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

Kiedy oddzielone średnikiem (;) pierwszy odcinek będzie miał zastosowanie do wartości dodatnich i zero (0), druga sekcja stosuje się do wartości ujemnych, trzecia sekcja ma zastosowanie do zera (0).

Należy zauważyć, że trzecią sekcję można pominąć, jeśli chcesz, aby zero było sformatowane w taki sam sposób, jak liczby dodatnie. Druga sekcja może również zostać pominięta, jeśli chcesz, aby negatywy były sformatowane tak samo jak pozytywne, ale chcesz mieć inny format zero.

referencyjny: MSDN Custom Numeric Format Strings: The ";" Section Separator

+1

OP chce, aby "0" było wyświetlane jako "+00", a nie "00". – LukeH

+0

@LukeH Dzięki, naprawione! – squillman

+0

Wygląda na to, że 'i.ToString (" + 00; -00 ");' wystarczy. 0 jest tutaj uważane za pozytywne. – Rodolphe

3

spróbować czegoś takiego:

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

Kilka przykładów:

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

Możesz być w stanie to zrobić w ciągu formatu jak tak ..

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

To byłoby produkować następujące wyjście.

2.ToString("+00;-00"); // +02 
(-2).ToString("+00;-00"); // -02 
0.ToString("+00;-00"); // +00 

Spójrz na MSDN documentation for Custom Numeric Format Strings

+0

OP chce '0' wyświetlać jako" +00 " nie zwykły "00". – LukeH

+0

@LukeH Masz rację, mój błąd, zmodyfikowaną odpowiedź, aby to odzwierciedlić. –