Nasıl yapılır: Bir Sayıyı Baştaki Sıfırlarla DoldurmaHow to: Pad a Number with Leading Zeros

"D" standart sayısal biçim dizesini hassas bir belirtimle kullanarak bir tamsayıya satır aralığı sıfırları ekleyebilirsiniz.You can add leading zeros to an integer by using the "D" standard numeric format string with a precision specifier. Özel bir sayısal biçim dizesikullanarak hem tamsayı hem de kayan nokta numaralarına satır aralığı sıfırları ekleyebilirsiniz.You can add leading zeros to both integer and floating-point numbers by using a custom numeric format string. Bu makalede, önde gelen sıfırlar ile bir sayı pad için her iki yöntem nasıl kullanılacağını gösterir.This article shows how to use both methods to pad a number with leading zeros.

Belirli bir uzunluğa giden sıfırları içeren bir tamsayıyı deftereTo pad an integer with leading zeros to a specific length

  1. Tümsek değerinin görüntülenmesini istediğiniz en az basamak sayısını belirleyin.Determine the minimum number of digits you want the integer value to display. Bu sayıya herhangi bir satır basamağı ekleyin.Include any leading digits in this number.

  2. Tamsayıyı ondalık değer mi yoksa hexadecimal değer olarak mı görüntülemek istediğinizi belirleyin.Determine whether you want to display the integer as a decimal value or a hexadecimal value.

    • Tamsayıyı ToString(String) ondalık değer olarak görüntülemek için, yöntemini çağırın ve "D n" dizesini, n dizesinin minimum uzunluğunu temsil eden format parametrenin değeri olarak geçirin.To display the integer as a decimal value, call its ToString(String) method, and pass the string "Dn" as the value of the format parameter, where n represents the minimum length of the string.

    • Tamsayıyı hexadecimal değer olarak görüntülemek için, yöntemini ToString(String) çağırın ve "X n" dizesini, n dizesinin minimum uzunluğunu temsil eden biçim parametresinin değeri olarak geçirin.To display the integer as a hexadecimal value, call its ToString(String) method and pass the string "Xn" as the value of the format parameter, where n represents the minimum length of the string.

Biçim dizesini hem C# hem de Visual Basic'teenterpolasyonlu bir dizede Console.WriteLinede kullanabilirsiniz veya bileşik biçimlendirmekullanan bir yöntem String.Format çağırabilirsiniz.You can also use the format string in an interpolated string in both C# and Visual Basic, or you can call a method, such as String.Format or Console.WriteLine, that uses composite formatting.

Aşağıdaki örnek, biçimlendirilmiş sayının toplam uzunluğunun en az sekiz karakter olması için satır aralığı sıfırlarla birkaç tamsayı değerini biçimlendirin.The following example formats several integer values with leading zeros so that the total length of the formatted number is at least eight characters.

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

Belirli sayıda satır aralığı sıfıriçeren bir tamsayıyı deftere almak içinTo pad an integer with a specific number of leading zeros

  1. Tümsek değerinin kaç tane satır aralığını görüntülemesini istediğinizi belirleyin.Determine how many leading zeros you want the integer value to display.

  2. Tamsayıyı ondalık değer mi yoksa hexadecimal değer olarak mı görüntülemek istediğinizi belirleyin.Determine whether you want to display the integer as a decimal value or a hexadecimal value.

    • Ondalık değer olarak biçimlendirmek için "D" standart biçim belirticisini kullanmanız gerekmektedir.Formatting it as a decimal value requires that you use the "D" standard format specifier.

    • Bir hexadecimal değer olarak biçimlendirme "X" standart biçim belirtici kullanmanız gerektirir.Formatting it as a hexadecimal value requires that you use the "X" standard format specifier.

  3. Toplam değerin ToString("D").Length veya ToString("X").Length yöntemi çağırarak eklenmemiş sayısal dizenin uzunluğunu belirleyin.Determine the length of the unpadded numeric string by calling the integer value's ToString("D").Length or ToString("X").Length method.

  4. Biçimlendirilmiş dizeye eklemek istediğiniz satır aralığı sıfırlarının sayısını, eklenmemiş sayısal dize uzunluğuna ekleyin.Add the number of leading zeros that you want to include in the formatted string to the length of the unpadded numeric string. Satır aralığı sıfırların sayısı nın eklenmesi, dolgulu dizenin toplam uzunluğunu tanımlar.Adding the number of leading zeros defines the total length of the padded string.

  5. Tamsayı ToString(String) değerinin yöntemini çağırın ve ondalık dizeler için "Dn" ve n'nin yastıklı dizenin toplam uzunluğunu temsil ettiği hexadecimal dizeler için "Xn" dizesini geçirin.Call the integer value's ToString(String) method, and pass the string "Dn" for decimal strings and "Xn" for hexadecimal strings, where n represents the total length of the padded string. "Dn" veya "Xn" biçimdize, bileşik biçimlendirmeyi destekleyen bir yöntemde de kullanabilirsiniz.You can also use the "Dn" or "Xn" format string in a method that supports composite formatting.

Aşağıdaki örnek, beş satır sıfıriçeren bir bir bir veyaslama değerini pedleri.The following example pads an integer value with five leading zeros.

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      

Belirli bir uzunluğa giden sıfırlarla sayısal bir değer emetmek içinTo pad a numeric value with leading zeros to a specific length

  1. Ondalık sayı nın solunda kaç basamaklı olmasını istediğinizi belirleyin.Determine how many digits to the left of the decimal you want the string representation of the number to have. Bu toplam basamak sayısına önde gelen sıfırları ekleyin.Include any leading zeros in this total number of digits.

  2. En az sıfır sayısını temsil etmek için sıfır yer tutucu "0"ı kullanan özel bir sayısal biçim dizesi tanımlayın.Define a custom numeric format string that uses the zero placeholder "0" to represent the minimum number of zeros.

  3. Numaranın ToString(String) yöntemini çağırın ve özel biçim dizesini geçirin.Call the number's ToString(String) method and pass it the custom format string. Ayrıca dize enterpolasyonu veya bileşik biçimlendirme destekleyen bir yöntem ile özel biçim dizek kullanabilirsiniz.You can also use the custom format string with string interpolation or with a method that supports composite formatting.

Aşağıdaki örnek, önde gelen sıfırlarla birkaç sayısal değeri biçimlendirür.The following example formats several numeric values with leading zeros. Sonuç olarak, biçimlendirilmiş sayının toplam uzunluğu ondalık adın solunda en az sekiz basamaktır.As a result, the total length of the formatted number is at least eight digits to the left of the decimal.

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      

Belirli sayıda satır aralığı sıfıriçeren sayısal bir değere sahip olmak içinTo pad a numeric value with a specific number of leading zeros

  1. Sayısal değerin kaç satır önde gelen sıfıra sahip olmasını istediğinizi belirleyin.Determine how many leading zeros you want the numeric value to have.

  2. Ondalık basamak ların solundaki basamak sayısını, eklenmemiş sayısal dizede belirleyin:Determine the number of digits to the left of the decimal in the unpadded numeric string:

    1. Bir sayının dize gösteriminin ondalık nokta simgesi ni içerip içermediğini belirleyin.Determine whether the string representation of a number includes a decimal point symbol.

    2. Ondalık nokta simgesi içeriyorsa, ondalık noktanın solundaki karakter sayısını belirleyin.If it does include a decimal point symbol, determine the number of characters to the left of the decimal point.

      -veya--or-

      Ondalık nokta simgesi içermiyorsa, dizenin uzunluğunu belirleyin.If it doesn't include a decimal point symbol, determine the string's length.

  3. Aşağıdakileri kullanan özel bir biçim dizesi oluşturun:Create a custom format string that uses:

    • Önde gelen sıfırların her biri için dizegörünmesi için sıfır yer tutucu "0"The zero placeholder "0" for each of the leading zeros to appear in the string.

    • Varsayılan dizedeki her rakamı temsil edecek sıfır yer tutucu veya basamak yer tutucusu "#" olur.Either the zero placeholder or the digit placeholder "#" to represent each digit in the default string.

  4. Özel biçim dizesini parametre olarak sayının ToString(String) yöntemine veya bileşik biçimlendirmeyi destekleyen bir yönteme ver.Supply the custom format string as a parameter either to the number's ToString(String) method or to a method that supports composite formatting.

Aşağıdaki örnek, beş Double satır sıfırile iki değer pads.The following example pads two Double values with five leading zeros.

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            

Ayrıca bkz.See also