Mam numer, który muszę przekonwertować na ciąg. Najpierw użyłem tego:
Key = i.ToString();
Ale zdaję sobie sprawę, że jest sortowane w dziwnej kolejności, więc muszę uzupełnić je zerami. Jak mogłem to zrobić?
c#
string
string-formatting
Mandy Weston
źródło
źródło
Odpowiedzi:
Raczej prosty:
D
oznacza „liczbę dziesiętną”,2
czyli liczbę cyfr do wydrukowania.źródło
string.Format("D2", value)
, otrzymaszD2
wynik. to nie działa."{0:00}"
W tym przypadku musimy użyć .string.Format("{0:D2}", value)
. Samo powiedzeniestring.Format("D2", ...)
niczego nie zastąpi bez względu na wszystko, ponieważ nie masz symbolu zastępczego.value
jest int.value
Na przykład, jeśli jest podwójny, będzie musiał byćstring.Format("{0:00}", value)
Zobacz Formatowanie ciągów w C # dla niektórych przykładowych zastosowań String.Format
Właściwie lepszy przykład formatowania int
lub użyj interpolacji ciągów :
źródło
Jeśli chcesz zachować stałą szerokość, na przykład 10 cyfr, zrób to w ten sposób
Zastąp tyle cyfr, ile chcesz.
i = 123
spowoduje następnieKey = "0000000123"
.źródło
Ponieważ nikt jeszcze o tym nie wspominał, jeśli używasz C # w wersji 6 lub nowszej (tj. Visual Studio 2015), możesz użyć interpolacji ciągów w celu uproszczenia kodu. Zamiast używać
string.Format(...)
, możesz po prostu to zrobić:źródło
posługiwać się:
Zobacz Int32.ToString (MSDN) i Standardowe ciągi formatu liczbowego (MSDN).
Lub użyj
String.PadLeft
. Na przykład,Spowodowałoby to
0000000321
. ChociażString.PadLeft
nie działałoby dla liczb ujemnych.Zobacz String.PadLeft (MSDN).
źródło
Zwykle String.Format („format”, obiekt) jest lepszy niż obiekt.ToString („format”). W związku z tym,
jest lepszy niż
źródło
Próbować:
Osobiście jednak sprawdziłbym, czy nie można posortować liczb całkowitych bezpośrednio zamiast reprezentacji ciągu.
źródło
W przypadku interpolowanych ciągów:
źródło
Tutaj chcę, aby moje ograniczenie nie było czterocyfrowe, np. Jeśli to 1, powinno być pokazane jako 0001, jeśli to 11, powinno być pokazane jako 0011 .. Poniżej znajduje się kod.
Zaimplementowałem ten kod, aby wygenerować nr paragonu.
źródło
Wyjście = „00001”
EDYCJA: Zmieniono, aby pasowała do kwoty PadLeft
źródło