Postupy: Doplnit číslo úvodními nulami
Celé číslo je možné doplnit úvodními nulami pomocí "D" standardního řetězce formátu čísel spolu se specifikátorem přesnosti. Celá čísla i čísla s plovoucí desetinnou čárkou lze doplnit úvodními nulami pomocí vlastního řetězce formátu čísel. Toto téma ukazuje jak použít obě metody pro doplnění čísla úvodními nulami.
Chcete-li doplnit celé číslo úvodními nulami do konkrétní délky
Určete, kolik číslic se má u celočíselné hodnoty zobrazit. Zahrňte všechny úvodní číslice tohoto čísla.
Určete, zda chcete celé číslo zobrazit jako desítkovou hodnotu nebo jako šestnáctkovou hodnotu.
Pro zobrazení celého čísla jako desítkovou hodnotu, volejte jeho metodu ToString(String) a předejte řetězec "Dn" jako hodnotu parametru format, kde n představuje minimální délku řetězce.
Pro zobrazení celého čísla jako šestnáctkovou hodnotu, volejte jeho metodu ToString(String) a předejte řetězec "Xn" jako hodnotu parametru format, kde n představuje minimální délku řetězce.
Můžete také použít řetězec formátu v metodě jako je Format nebo WriteLine, která používá složené formátování.
V následujícím příkladu je zformátováno několik celočíselných hodnot uvozených nulami tak, aby celková délka naformátovaného čísla byla nejméně osm znaků.
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 caling 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
byte byteValue = 254;
short shortValue = 10342;
int intValue = 1023983;
long lngValue = 6985321;
ulong ulngValue = UInt64.MaxValue;
// Display integer values by caling 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
Chcete-li doplnit celé číslo určitým počtem úvodních nul
Určete, kolik úvodních nul se má u celočíselné hodnoty zobrazit.
Určete, zda chcete celé číslo zobrazit jako desítkovou hodnotu nebo jako šestnáctkovou hodnotu. Formátování jako desítkovou hodnotu vyžaduje použití specifikátoru standardního formátu "D". Formátování jako šestnáctkovou hodnotu vyžaduje použití specifikátoru standardního formátu "X".
Určete délku nedoplněného číselného řetězce zavoláním metody dané celočíselné hodnoty ToString("D").Length nebo ToString("X").Length.
Přičtěte počet úvodních nul, které chcete zahrnout do formátovaného řetězce k délce nedoplněného číselného řetězce. To určí celkovou délku doplněného řetězce.
Zavolejte metodu dané celočíselné hodnoty ToString(String) a předejte řetězec "Dn" pro desítkové řetězce a "Xn" pro šestnáctkové řetězce, kde n představuje celkovou délku doplněného řetězce. Můžete také použít řetězce formátu "Dn" nebo "Xn" v metodě, která podporuje složené formátování.
Následující příklad doplní celočíselnou hodnota pěti úvodními nulami.
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
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
Chcete-li doplnit numerickou hodnotu úvodními nulami do konkrétní délky
Určete, kolik číslic nalevo od desetinné čárky chcete, aby dané řetězcové vyjádření čísla mělo. Zahrňte do tohoto celkového počtu číslic všechny úvodní nuly.
Definujte vlastní řetězec formátu čísla, který používá k reprezentaci minimálního počtu nul nulový zástupný symbol ("0").
Zavolejte metodu daného čísla ToString(String) a předejte jí vlastní řetězec formátu. Můžete také použít vlastní řetězec formátu u metody, která podporuje složené formátování.
V následujícím příkladu je zformátováno několik numerických hodnot uvozených nulami tak, aby celková délka naformátovaného čísla byla nejméně osm číslic nalevo od desetinné čárky.
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(sngValue.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
' 01549230
'
' 01053240
' 00103932.52
' 01549230
' 9034521202.93
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(sngValue.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
// 01549230
//
// 01053240
// 00103932.52
// 01549230
// 9034521202.93
Chcete-li doplnit numerickou hodnotu určitým počtem úvodních nul
Určete, kolik úvodních nul má numerická hodnota mít.
Určete počet číslic nalevo od desetinné čárky v nedoplněném číselném řetězci. Postup:
Určete zda řetězcová reprezentace čísla obsahuje symbol desetinné čárky.
Pokud obsahuje symbol desetinné čárky, určete počet znaků nalevo od desetinné čárky.
-nebo-
Pokud neobsahuje symbol desetinné čárky, určete délku řetězce.
Vytvořte vlastní řetězec formátu, který používá nulový zástupný symbol ("0") pro každou úvodní nulu v řetězci a který používá nulový zástupný symbol nebo zástupný symbol číslice ("#") pro reprezentaci každé číslice ve výchozím řetězci.
Poskytněte vlastní řetězec formátu jako parametr metodě daného čísla ToString(String) nebo metodě, která podporuje složené formátování.
Následující příklad doplňuje dvě hodnoty Double pěti úvodními nulami.
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
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
Viz také
Koncepty
Vlastní číselné formátovací řetězce