Útmutató: Szám kitöltése kezdő nullákkal
Az első nullákat az egész számokhoz a "D" standard numerikus formátumú sztring használatával, pontosság-meghatározóval adhat hozzá. Egyéni numerikus formátumsztring használatával kezdő nullákat is hozzáadhat az egész számhoz és a lebegőpontos számokhoz. Ez a cikk bemutatja, hogyan használható mindkét módszer egy szám kezdő nullákkal való kitöltésére.
Egész szám kitöltése egy adott hosszúságú kezdő nullával
Határozza meg az egész szám megjelenítendő számjegyeinek minimális számát. Adja meg az összes kezdő számjegyet ebben a számban.
Határozza meg, hogy az egész számot decimális vagy hexadecimális értékként szeretné-e megjeleníteni.
Az egész szám decimális értékként való megjelenítéséhez hívja meg a metódust
ToString(String)
, és adja át a "Dn" sztringet aformat
paraméter értékeként, ahol n a sztring minimális hosszát jelöli.Ha az egész számot hexadecimális értékként szeretné megjeleníteni, hívja meg a metódust
ToString(String)
, és adja át az "Xn" sztringet a formátumparaméter értékeként, ahol n a sztring minimális hosszát jelöli.
A formátumsztringet interpolált sztringben is használhatja c# és Visual Basic nyelven is. Másik lehetőségként meghívhat egy olyan metódust is, amely String.FormatConsole.WriteLine összetett formázást használ.
Az alábbi példa több egész számot formáz bevezető nullákkal úgy, hogy a formázott szám teljes hossza legalább nyolc karakter legyen.
byte byteValue = 254;
short shortValue = 10342;
int intValue = 1023983;
long lngValue = 6985321;
ulong ulngValue = UInt64.MaxValue;
// Display integer values by calling the ToString method.
Console.WriteLine("{0,22} {1,22}", byteValue.ToString("D8"), byteValue.ToString("X8"));
Console.WriteLine("{0,22} {1,22}", shortValue.ToString("D8"), shortValue.ToString("X8"));
Console.WriteLine("{0,22} {1,22}", intValue.ToString("D8"), intValue.ToString("X8"));
Console.WriteLine("{0,22} {1,22}", lngValue.ToString("D8"), lngValue.ToString("X8"));
Console.WriteLine("{0,22} {1,22}", ulngValue.ToString("D8"), ulngValue.ToString("X8"));
Console.WriteLine();
// Display the same integer values by using composite formatting.
Console.WriteLine("{0,22:D8} {0,22:X8}", byteValue);
Console.WriteLine("{0,22:D8} {0,22:X8}", shortValue);
Console.WriteLine("{0,22:D8} {0,22:X8}", intValue);
Console.WriteLine("{0,22:D8} {0,22:X8}", lngValue);
Console.WriteLine("{0,22:D8} {0,22:X8}", ulngValue);
// The example displays the following output:
// 00000254 000000FE
// 00010342 00002866
// 01023983 000F9FEF
// 06985321 006A9669
// 18446744073709551615 FFFFFFFFFFFFFFFF
//
// 00000254 000000FE
// 00010342 00002866
// 01023983 000F9FEF
// 06985321 006A9669
// 18446744073709551615 FFFFFFFFFFFFFFFF
// 18446744073709551615 FFFFFFFFFFFFFFFF
Dim byteValue As Byte = 254
Dim shortValue As Short = 10342
Dim intValue As Integer = 1023983
Dim lngValue As Long = 6985321
Dim ulngValue As ULong = UInt64.MaxValue
' Display integer values by calling the ToString method.
Console.WriteLine("{0,22} {1,22}", byteValue.ToString("D8"), byteValue.ToString("X8"))
Console.WriteLine("{0,22} {1,22}", shortValue.ToString("D8"), shortValue.ToString("X8"))
Console.WriteLine("{0,22} {1,22}", intValue.ToString("D8"), intValue.ToString("X8"))
Console.WriteLine("{0,22} {1,22}", lngValue.ToString("D8"), lngValue.ToString("X8"))
Console.WriteLine("{0,22} {1,22}", ulngValue.ToString("D8"), ulngValue.ToString("X8"))
Console.WriteLine()
' Display the same integer values by using composite formatting.
Console.WriteLine("{0,22:D8} {0,22:X8}", byteValue)
Console.WriteLine("{0,22:D8} {0,22:X8}", shortValue)
Console.WriteLine("{0,22:D8} {0,22:X8}", intValue)
Console.WriteLine("{0,22:D8} {0,22:X8}", lngValue)
Console.WriteLine("{0,22:D8} {0,22:X8}", ulngValue)
' The example displays the following output:
' 00000254 000000FE
' 00010342 00002866
' 01023983 000F9FEF
' 06985321 006A9669
' 18446744073709551615 FFFFFFFFFFFFFFFF
'
' 00000254 000000FE
' 00010342 00002866
' 01023983 000F9FEF
' 06985321 006A9669
' 18446744073709551615 FFFFFFFFFFFFFFFF
Egész szám kitöltése adott számú kezdő nullával
Határozza meg, hogy hány kezdő nullát szeretne megjeleníteni az egész számértékben.
Határozza meg, hogy az egész számot decimális vagy hexadecimális értékként szeretné-e megjeleníteni.
A decimális értékként való formázáshoz a "D" standard formátumjelölőre van szükség.
A hexadecimális értékként való formázáshoz az "X" szabványos formátumkijelölő szükséges.
Az egész számérték
ToString("D").Length
vagyToString("X").Length
metódus meghívásával határozza meg a nem számozott sztring hosszát.Adja hozzá a nem formázott numerikus sztring hosszához a formázott sztringben használni kívánt kezdő nullák számát. Az eredmény a kipárnázott sztring teljes hossza.
Hívja meg az egész szám metódusát
ToString(String)
, és adja át a "Dn" sztringet decimális sztringekhez, az "Xn" karakterláncot pedig hexadecimális sztringekhez, ahol n a kipárnázott sztring teljes hosszát jelöli. Az összetett formázást támogató metódusban a "Dn" vagy az "Xn" formátumsztringet is használhatja.
Az alábbi példa egy egész számot tartalmaz öt kezdő nullával:
int value = 160934;
int decimalLength = value.ToString("D").Length + 5;
int hexLength = value.ToString("X").Length + 5;
Console.WriteLine(value.ToString("D" + decimalLength.ToString()));
Console.WriteLine(value.ToString("X" + hexLength.ToString()));
// The example displays the following output:
// 00000160934
// 00000274A6
Dim value As Integer = 160934
Dim decimalLength As Integer = value.ToString("D").Length + 5
Dim hexLength As Integer = value.ToString("X").Length + 5
Console.WriteLine(value.ToString("D" + decimalLength.ToString()))
Console.WriteLine(value.ToString("X" + hexLength.ToString()))
' The example displays the following output:
' 00000160934
' 00000274A6
Numerikus érték kitöltése adott hosszúságú kezdő nullákkal
Határozza meg, hogy hány számjegy legyen a tizedesvessző bal oldalán, és adja meg a szám sztringképét. A számjegyek teljes számának kezdő nulláit is belefoglalhatja.
Definiáljon egy egyéni numerikus formátumsztringet, amely a nulla helyőrzőt ("0") használja a nullák minimális számának megjelenítéséhez.
Hívja meg a szám metódusát
ToString(String)
, és adja át az egyéni formátumsztringet. Az egyéni formázási sztringet sztring interpolációval vagy összetett formázást támogató módszerrel is használhatja.
Az alábbi példa több numerikus értéket formáz bevezető nullákkal. Ennek eredményeként a formázott szám teljes hossza legalább nyolc számjegyből áll a tizedesvessző bal oldalán.
string fmt = "00000000.##";
int intValue = 1053240;
decimal decValue = 103932.52m;
float sngValue = 1549230.10873992f;
double dblValue = 9034521202.93217412;
// Display the numbers using the ToString method.
Console.WriteLine(intValue.ToString(fmt));
Console.WriteLine(decValue.ToString(fmt));
Console.WriteLine(sngValue.ToString(fmt));
Console.WriteLine(dblValue.ToString(fmt));
Console.WriteLine();
// Display the numbers using composite formatting.
string formatString = " {0,15:" + fmt + "}";
Console.WriteLine(formatString, intValue);
Console.WriteLine(formatString, decValue);
Console.WriteLine(formatString, sngValue);
Console.WriteLine(formatString, dblValue);
// The example displays the following output:
// 01053240
// 00103932.52
// 01549230
// 9034521202.93
//
// 01053240
// 00103932.52
// 01549230
// 9034521202.93
Dim fmt As String = "00000000.##"
Dim intValue As Integer = 1053240
Dim decValue As Decimal = 103932.52d
Dim sngValue As Single = 1549230.10873992
Dim dblValue As Double = 9034521202.93217412
' Display the numbers using the ToString method.
Console.WriteLine(intValue.ToString(fmt))
Console.WriteLine(decValue.ToString(fmt))
Console.WriteLine(sngValue.ToString(fmt))
Console.WriteLine(dblValue.ToString(fmt))
Console.WriteLine()
' Display the numbers using composite formatting.
Dim formatString As String = " {0,15:" + fmt + "}"
Console.WriteLine(formatString, intValue)
Console.WriteLine(formatString, decValue)
Console.WriteLine(formatString, sngValue)
Console.WriteLine(formatString, dblValue)
' The example displays the following output:
' 01053240
' 00103932.52
' 01549230
' 9034521202.93
'
' 01053240
' 00103932.52
' 01549230
' 9034521202.93
Numerikus érték kitöltése adott számú kezdő nullával
Határozza meg, hogy hány kezdő nullával rendelkezzen a numerikus érték.
Határozza meg a tizedesjegyek számától balra lévő számjegyek számát a nem pikkolt numerikus sztringben:
Annak meghatározása, hogy egy szám sztringje tartalmaz-e tizedesjelet.
Ha nem tartalmaz tizedesjelet, határozza meg a tizedesvessző bal oldalán lévő karakterek számát. Ha nem tartalmaz tizedesjelet, határozza meg a sztring hosszát.
Hozzon létre egy egyéni formátumsztringet, amely a következőket használja:
A sztringben az egyes kezdő nullák nulla helyőrzője ("0") jelenik meg.
A nulla helyőrző vagy a "#" számjegy helyőrzője az alapértelmezett sztring egyes számjegyeinek megjelenítéséhez.
Adja meg az egyéni formázási sztringet paraméterként a szám metódusának
ToString(String)
vagy az összetett formázást támogató metódusnak.
Az alábbi példa két Double értéket tartalmaz öt kezdő nullával:
double[] dblValues = { 9034521202.93217412, 9034521202 };
foreach (double dblValue in dblValues)
{
string decSeparator = System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator;
string fmt, formatString;
if (dblValue.ToString().Contains(decSeparator))
{
int digits = dblValue.ToString().IndexOf(decSeparator);
fmt = new String('0', 5) + new String('#', digits) + ".##";
}
else
{
fmt = new String('0', dblValue.ToString().Length);
}
formatString = "{0,20:" + fmt + "}";
Console.WriteLine(dblValue.ToString(fmt));
Console.WriteLine(formatString, dblValue);
}
// The example displays the following output:
// 000009034521202.93
// 000009034521202.93
// 9034521202
// 9034521202
Dim dblValues() As Double = {9034521202.93217412, 9034521202}
For Each dblValue As Double In dblValues
Dim decSeparator As String = System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator
Dim fmt, formatString As String
If dblValue.ToString.Contains(decSeparator) Then
Dim digits As Integer = dblValue.ToString().IndexOf(decSeparator)
fmt = New String("0"c, 5) + New String("#"c, digits) + ".##"
Else
fmt = New String("0"c, dblValue.ToString.Length)
End If
formatString = "{0,20:" + fmt + "}"
Console.WriteLine(dblValue.ToString(fmt))
Console.WriteLine(formatString, dblValue)
Next
' The example displays the following output:
' 000009034521202.93
' 000009034521202.93
' 9034521202
' 9034521202
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: