Standart sayısal biçim dizeleri

Standart sayısal biçim dizeleri, genel sayısal türleri biçimlendirmek için kullanılır. Standart sayısal biçim dizesi biçimindedir [format specifier][precision specifier]ve burada:

  • Biçim belirtici , sayı biçiminin türünü (örneğin, para birimi veya yüzde) belirten tek bir alfabetik karakterdir. Beyaz boşluk da dahil olmak üzere birden fazla alfabetik karakter içeren herhangi bir sayısal biçim dizesi, özel bir sayısal biçim dizesi olarak yorumlanır. Daha fazla bilgi için bkz . Özel sayısal biçim dizeleri.

  • Duyarlık belirtici , sonuçta elde edilen dizedeki basamak sayısını etkileyen isteğe bağlı bir tamsayıdır. .NET 7 ve sonraki sürümlerde maksimum duyarlık değeri 999.999.999'dır. .NET 6'da en yüksek duyarlık değeri şeklindedir Int32.MaxValue. Önceki .NET sürümlerinde duyarlık 0 ile 99 arasında değişebilir. Duyarlık belirtici, bir sayının dize gösterimindeki basamak sayısını denetler. Sayının kendisini yuvarlamaz. Yuvarlama işlemi gerçekleştirmek için , Math.Floorveya Math.Round yöntemini kullanınMath.Ceiling.

    Duyarlık belirtici sonuç dizesindeki kesirli basamak sayısını denetlediğinde, sonuç dizesi sonsuz hassas sonuca en yakın temsil edilebilir sonuca yuvarlanan bir sayıyı yansıtır. Eşit derecede temsil edilebilir iki sonuç varsa:

    • .NET Core 2.0'a kadar .NET Framework ve .NET Core'da çalışma zamanı sonucu en az önemli basameğe (kullanarakMidpointRounding.AwayFromZero) seçer.
    • .NET Core 2.1 ve sonraki sürümlerde, çalışma zamanı sonucu en az önemli basamakla (yani kullanarak MidpointRounding.ToEven) seçer.

    Not

    Duyarlık belirtici, sonuç dizesindeki basamak sayısını belirler. Bir sonuç dizesini baştaki veya sondaki boşluklarla doldururken bileşik biçimlendirme özelliğini kullanın ve biçim öğesinde bir hizalama bileşeni tanımlayın.

Standart sayısal biçim dizeleri şunlar tarafından desteklenir:

İpucu

Biçimlendirme dizelerini sayısal veya tarih ve saat değerlerine uygulamanıza olanak tanıyan ve sonuç dizesini görüntüleyen bir .NET Core Windows Forms uygulaması olan Biçimlendirme Yardımcı Programı'nı indirebilirsiniz. Kaynak kodu C# ve Visual Basic için kullanılabilir.

Standart biçim tanımlayıcıları

Aşağıdaki tabloda standart sayısal biçim tanımlayıcıları açıklanır ve her biçim tanımlayıcısı tarafından oluşturulan örnek çıktı görüntülenir. Standart sayısal biçim dizelerini kullanma hakkında ek bilgi için Notlar bölümüne ve bunların kullanımına ilişkin kapsamlı bir çizim için Kod örneği bölümüne bakın.

Belirli bir kültür için biçimlendirilmiş dizenin sonucu aşağıdaki örneklerden farklı olabilir. İşletim sistemi ayarları, kullanıcı ayarları, ortam değişkenleri ve kullandığınız .NET sürümü biçimi etkileyebilir. Örneğin, .NET 5'den başlayarak .NET, platformlar arasında kültürel biçimleri birleştirmeye çalışır. Daha fazla bilgi için bkz. .NET genelleştirmesi ve ICU.

Biçim belirteci Ad Açıklama Örnekler
"B" veya "b" İkili Sonuç: İkili dize.

Tarafından desteklenir: Yalnızca integral türleri (.NET 8+).

Duyarlık belirtici: Sonuç dizesindeki basamak sayısı.

Daha fazla bilgi: İkili ("B") Biçim Tanımlayıcısı.
42 ("B")
-> 101010

255 ("b16")
-> 0000000011111111
"C" ya da "c" Para Birimi Sonuç: Bir para birimi değeri.

Destekleyen: Tüm sayısal türler.

Duyarlık belirtici: Ondalık basamak sayısı.

Varsayılan duyarlık tanımlayıcısı: tarafından NumberFormatInfo.CurrencyDecimalDigitstanımlanır.

Daha fazla bilgi: Para Birimi ("C") Biçim Tanımlayıcısı.
123.456 ("C", en-US)
-> \$123,46

123.456 ("C", fr-FR)
-> 123,46 €

123.456 ("C", ja-JP)
-> ¥123

-123.456 ("C3", en-US)
-> (\$123.456)

-123.456 ("C3", fr-FR)
-> -123,456 €

-123.456 ("C3", ja-JP)
-> -¥123.456
"D" veya "d" Ondalık Sonuç: İsteğe bağlı eksi işaretli tamsayı basamaklar.

Desteklenen: sadece integral türleri.

Duyarlık belirtici: Minimum basamak sayısı.

Varsayılan duyarlık belirtici: En az gereken basamak sayısı.

Daha fazla bilgi: Ondalık("D") Biçim Tanımlayıcısı.
1234 ("D")
-> 1234

-1234 ("D6")
-> -001234
"E" ya da "e" Üstsel (bilimsel) Sonuç: Üstel simgeleme.

Destekleyen: Tüm sayısal türler.

Duyarlık belirtici: Ondalık basamak sayısı.

Varsayılan duyarlık belirtici: 6.

Daha fazla bilgi: Üstel ("E") Biçim Tanımlayıcısı.
1052.0329112756 ("E", en-US)
-> 1.052033E+003

1052.0329112756 ("e", fr-FR)
-> 1,052033e+003

-1052.0329112756 ("e2", en-US)
-> -1,05e+003

-1052.0329112756 ("E2", fr-FR)
-> -1,05E+003
"F" ya da "f" Sabit nokta Sonuç: İsteğe bağlı eksi işaretli tamsayı ve ondalık basamaklar.

Destekleyen: Tüm sayısal türler.

Duyarlık belirtici: Ondalık basamak sayısı.

Varsayılan duyarlık tanımlayıcısı: tarafından NumberFormatInfo.NumberDecimalDigitstanımlanır.

Daha fazla bilgi: Fixed-Point ("F") Biçim Tanımlayıcısı.
1234.567 ("F", tr-TR)
-> 1234,57

1234.567 ("F", de-DE)
-> 1234,57

1234 ("F1", tr-TR)
-> 1234.0

1234 ("F1", de-DE)
-> 1234,0

-1234.56 ("F4", en-US)
-> -1234.5600

-1234.56 ("F4", de-DE)
-> -1234.5600
"G" ya da "g" Genel Sonuç: Sabit noktalı veya bilimsel gösterimin daha kompakt olduğu.

Destekleyen: Tüm sayısal türler.

Duyarlık belirtici: Anlamlı basamak sayısı.

Varsayılan duyarlık belirtici: Sayısal türe bağlıdır.

Daha fazla bilgi: Genel ("G") Biçim Tanımlayıcısı.
-123.456 ("G", tr-TR)
-> -123.456

-123.456 ("G", sv-SE)
-> -123.456

123.4546 ("G4", tr-TR)
-> 123.5

123.4546 ("G4", sv-SE)
-> 123,5

-1.234567890e-25 ("G", en-US)
-> -1.23456789E-25

-1.234567890e-25 ("G", sv-SE)
-> -1,23456789E-25
"N" ya da "n" Sayı Sonuç: Integral ve ondalık basamaklar, grup ayırıcılar ve isteğe bağlı eksi işaretli ondalık ayırıcı.

Destekleyen: Tüm sayısal türler.

Duyarlık belirtici: İstenen ondalık basamak sayısı.

Varsayılan duyarlık tanımlayıcısı: tarafından NumberFormatInfo.NumberDecimalDigitstanımlanır.

Daha fazla bilgi: Sayısal ("N") Biçim Tanımlayıcısı.
1234.567 ("N", en-US)
-> 1,234,57

1234.567 ("N", ru-RU)
-> 1 234,57

1234 ("N1", tr-TR)
-> 1,234,0

1234 ("N1", ru-RU)
-> 1 234,0

-1234.56 ("N3", en-US)
-> -1,234,560

-1234,56 ("N3", ru-RU)
-> -1 234.560
"P" ya da "p" Yüzde Sonuç: Sayı 100 ile çarpılır ve yüzde simgesi ile görüntülenir.

Destekleyen: Tüm sayısal türler.

Duyarlık belirtici: İstenen ondalık basamak sayısı.

Varsayılan duyarlık tanımlayıcısı: tarafından NumberFormatInfo.PercentDecimalDigitstanımlanır.

Daha fazla bilgi: Yüzde ("P") Biçim Tanımlayıcısı.
1 ("P", en-US)
-> %100,00

1 ("P", fr-FR)
-> %100,00

-0,39678 ("P1", en-US)
-> -39,7 %

-0,39678 ("P1", fr-FR)
-> -39,7 %
"R" ya da "r" Gidiş Sonuç: Aynı numaraya gidiş dönüş yapabilen bir dize.

Tarafından desteklenir: Single, Doubleve BigInteger.

Not: Yalnızca tür için BigInteger önerilir. Türler için Double "G17" kullanın; türler için Single "G9" kullanın.
Duyarlık belirtici: Yoksayıldı.

Daha fazla bilgi: Gidiş dönüş ("R") Biçim Belirleyicisi.
123456789.12345678 ("R")
-> 123456789.12345678

-1234567890.12345678 ("R")
-> -1234567890.1234567
"X" ya da "x" Onaltılık Sonuç: Bir onaltılık dize.

Desteklenen: sadece integral türleri.

Duyarlık belirtici: Sonuç dizesindeki basamak sayısı.

Daha fazla bilgi: Onaltılık ("X") Biçim Tanımlayıcısı.
255 ("X")
-> FF

-1 ("x")
-> ff

255 ("x4")
-> 00ff

-1 ("X4")
-> 00FF
Başka bir tek karakter Bilinmeyen tanımlayıcı Sonuç: Çalışma zamanında bir FormatException oluşturur.

Standart sayısal biçim dizelerini kullanma

Not

Bu makaledeki C# örnekleri Try.NET satır içi kod çalıştırıcısında ve oyun alanında çalıştırılır. Etkileşimli pencerede bir örnek çalıştırmak için Çalıştır düğmesini seçin. Kodu yürüttkten sonra yeniden Çalıştır'ı seçerek kodu değiştirebilir ve değiştirilmiş kodu çalıştırabilirsiniz. Değiştirilen kod etkileşimli pencerede çalışır veya derleme başarısız olursa etkileşimli pencere tüm C# derleyicisi hata iletilerini görüntüler.

Standart bir sayısal biçim dizesi, sayısal bir değerin biçimlendirmesini aşağıdaki yollardan biriyle tanımlamak için kullanılabilir:

  • Yöntemine TryFormat veya parametresi olan format yöntemin aşırı yüklenmesine ToString geçirilebilir. Aşağıdaki örnek, sayısal değeri geçerli kültürde (bu örnekte en-US kültürü) para birimi dizesi olarak biçimlendirmektedir.

    Decimal value = static_cast<Decimal>(123.456);
    Console::WriteLine(value.ToString("C2"));
    // Displays $123.46
    
    decimal value = 123.456m;
    Console.WriteLine(value.ToString("C2"));
    // Displays $123.46
    
    Dim value As Decimal = 123.456d
    Console.WriteLine(value.ToString("C2"))
    ' Displays $123.46
    
  • , ve StringBuilder.AppendFormatgibi yöntemlerle kullanılan bir biçim öğesinde bağımsız değişken olarak Console.WriteLineformatStringString.Formatsağlanabilir. Daha fazla bilgi için bkz . Bileşik Biçimlendirme. Aşağıdaki örnek, bir dizeye bir para birimi değeri eklemek için bir biçim öğesi kullanmaktadır.

    Decimal value = static_cast<Decimal>(123.456);
    Console::WriteLine("Your account balance is {0:C2}.", value);
    // Displays "Your account balance is $123.46."
    
    decimal value = 123.456m;
    Console.WriteLine("Your account balance is {0:C2}.", value);
    // Displays "Your account balance is $123.46."
    
    Dim value As Decimal = 123.456d
    Console.WriteLine("Your account balance is {0:C2}.", value)
    ' Displays "Your account balance is $123.46."
    

    İsteğe bağlı olarak, sayısal alanın genişliğini ve değerinin sağa mı yoksa sola mı hizalı olduğunu belirtmek için bir alignment bağımsız değişken sağlayabilirsiniz. Aşağıdaki örnek, 28 karakterlik bir alandaki para birimi değerini sola hizalar ve 14 karakterlik bir alandaki para birimi değerini sağa hizalar.

    array<Decimal>^ amounts = { static_cast<Decimal>(16305.32), 
                                static_cast<Decimal>(18794.16) };
    Console::WriteLine("   Beginning Balance           Ending Balance");
    Console::WriteLine("   {0,-28:C2}{1,14:C2}", amounts[0], amounts[1]);
    // Displays:
    //        Beginning Balance           Ending Balance
    //        $16,305.32                      $18,794.16      
    
    decimal[] amounts = { 16305.32m, 18794.16m };
    Console.WriteLine("   Beginning Balance           Ending Balance");
    Console.WriteLine("   {0,-28:C2}{1,14:C2}", amounts[0], amounts[1]);
    // Displays:
    //        Beginning Balance           Ending Balance
    //        $16,305.32                      $18,794.16
    
    Dim amounts() As Decimal = {16305.32d, 18794.16d}
    Console.WriteLine("   Beginning Balance           Ending Balance")
    Console.WriteLine("   {0,-28:C2}{1,14:C2}", amounts(0), amounts(1))
    ' Displays:
    '        Beginning Balance           Ending Balance
    '        $16,305.32                      $18,794.16      
    
  • İlişkili bir dizenin formatString ilişkilendirilmiş ifade öğesinde bağımsız değişken olarak sağlanabilir. Daha fazla bilgi için, C# başvurusundaki Dize ilişkilendirme makalesine veya Visual Basic başvurusundaki İlişkili dizeler makalesine bakın.

Aşağıdaki bölümlerde her standart sayısal biçim dizesi hakkında ayrıntılı bilgi sağlanmaktadır.

İkili biçim belirticisi (B)

İkili ("B") biçim belirticisi sayıyı ikili basamaklar dizesine dönüştürür. Bu biçim yalnızca tam sayı türleri için ve yalnızca .NET 8+ üzerinde desteklenir.

Duyarlık belirtici, sonuç dizesindeki istenen minimum basamak sayısını gösterir. Gerekirse, duyarlık belirtici tarafından verilen basamak sayısını üretmek için sayının sol tarafı sıfırlarla doldurulur

Sonuç dizesi geçerli NumberFormatInfo nesnenin biçimlendirme bilgilerinden etkilenmez.

Para birimi biçim belirticisi (C)

"C" (ya da para birimi) biçim belirticisi, bir sayıyı para birimi tutarını gösteren bir dizeye dönüştürür. Duyarlık belirtici, sonuç dizesindeki istenen ondalık basamak sayısını gösterir. Duyarlık belirtici atlanırsa, varsayılan duyarlık özelliği tarafından NumberFormatInfo.CurrencyDecimalDigits tanımlanır.

Biçimlendirilecek değer, belirtilen veya varsayılan ondalık basamak sayısından fazlasına sahipse, sonuç dizesinde kesirli değer yuvarlanır. Belirtilen ondalık basamak sayısının sağındaki değer 5 veya daha büyükse, sonuç dizesindeki son basamak, sıfırdan uzağa yuvarlanır.

Sonuç dizesi geçerli nesnenin biçimlendirme bilgilerinden NumberFormatInfo etkilenir. Aşağıdaki tabloda, döndürülen dizenin biçimlendirmesini denetleye özellikleri listeledik NumberFormatInfo .

NumberFormatInfo özellikleri Açıklama
CurrencyPositivePattern Pozitif değerler için para birimi sembolünün yerleşimini tanımlar.
CurrencyNegativePattern Negatif değerler için para birimi simgesinin yerleşimini tanımlar ve negatif işaretin parantez veya NegativeSign özellik ile temsil edilip edilmediğini belirtir.
NegativeSign Parantezlerin kullanılmadığını gösterirse CurrencyNegativePattern kullanılan negatif işareti tanımlar.
CurrencySymbol Para birimi sembolünü tanımlar.
CurrencyDecimalDigits Para birimi değerindeki varsayılan ondalık basamak sayısını tanımlar. B değeri hassasiyet belirleyici kullanılarak geçersiz kılınabilir.
CurrencyDecimalSeparator Tamsayı ve ondalık basamakları ayıran dizeyi tanımlar.
CurrencyGroupSeparator Tam sayı gruplarını ayıran dizeyi tanımlar.
CurrencyGroupSizes Bir grup içinde görüntülenen tamsayı basamak sayısını tanımlar.

Aşağıdaki örnek, bir Double değeri para birimi biçim belirticisiyle biçimlendirer:

double value = 12345.6789;
Console::WriteLine(value.ToString("C", CultureInfo::CurrentCulture));

Console::WriteLine(value.ToString("C3", CultureInfo::CurrentCulture));

Console::WriteLine(value.ToString("C3", 
                  CultureInfo::CreateSpecificCulture("da-DK")));
// The example displays the following output on a system whose
// current culture is English (United States):
//       $12,345.68
//       $12,345.679
//       kr 12.345,679
double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture));

Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture));

Console.WriteLine(value.ToString("C3",
                  CultureInfo.CreateSpecificCulture("da-DK")));
// The example displays the following output on a system whose
// current culture is English (United States):
//       $12,345.68
//       $12,345.679
//       12.345,679 kr
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture))

Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture))

Console.WriteLine(value.ToString("C3", _
                  CultureInfo.CreateSpecificCulture("da-DK")))
' The example displays the following output on a system whose
' current culture is English (United States):
'       $12,345.68
'       $12,345.679
'       kr 12.345,679

Ondalık biçim belirticisi (D)

"D" (veya ondalık) biçim belirticisi, sayıyı, sayı negatifse eksi işaretiyle önekli bir ondalık basamaklı (0-9) bir dizeye dönüştürür. Bu biçim yalnızca tam sayı türleri için desteklenir.

Duyarlık belirtici, sonuç dizesindeki istenen minimum basamak sayısını gösterir. Gerekirse, duyarlık belirtici tarafından verilen basamak sayısını üretmek için sayının sol tarafı sıfırlarla doldurulur Bir duyarlık belirtici belirtilmezse varsayılan, başta sıfır bulunmadan tamsayıyı temsil etmek için gerekli minimum değerdir.

Sonuç dizesi geçerli nesnenin biçimlendirme bilgilerinden NumberFormatInfo etkilenir. Aşağıdaki tabloda gösterildiği gibi tek bir özellik, sonuç dizesinin biçimlendirmesini etkiler.

NumberFormatInfo özellikleri Açıklama
NegativeSign Bir sayının negatif olduğunu belirten dizeyi tanımlar.

Aşağıdaki örnek, bir Int32 değeri ondalık biçim belirticisiyle biçimlendirer.

int value; 

value = 12345;
Console::WriteLine(value.ToString("D"));
// Displays 12345
Console::WriteLine(value.ToString("D8"));
// Displays 00012345

value = -12345;
Console::WriteLine(value.ToString("D"));
// Displays -12345
Console::WriteLine(value.ToString("D8"));
// Displays -00012345
int value;

value = 12345;
Console.WriteLine(value.ToString("D"));
// Displays 12345
Console.WriteLine(value.ToString("D8"));
// Displays 00012345

value = -12345;
Console.WriteLine(value.ToString("D"));
// Displays -12345
Console.WriteLine(value.ToString("D8"));
// Displays -00012345
Dim value As Integer

value = 12345
Console.WriteLine(value.ToString("D"))
' Displays 12345   
Console.WriteLine(value.ToString("D8"))
' Displays 00012345

value = -12345
Console.WriteLine(value.ToString("D"))
' Displays -12345
Console.WriteLine(value.ToString("D8"))
' Displays -00012345

Üstel biçim tanımlayıcısı (E)

Üstel ("E") biçim belirteci bir sayıyı "-d.ddd...E + ggg" veya "-d.ddd...e+ddd" biçiminde bir dizeye dönüştürür; burada her "d" bir basamağı (0-9) gösterir. Sayı negatifse, dize eksi işaretiyle başlar. Ondalık işaretinden önce her zaman tam bir basamak gelir.

Duyarlık belirtici, ondalık noktasından sonraki istenen basamak sayısını gösterir. Duyarlık belirtici atlanırsa, ondalık işaretinden sonra varsayılan olarak altı basamak kullanılır.

Biçim belirticisinin durumu üsse "E" veya "e" önekinin getirilip getirilmeyeceğini gösterir. Üs her zaman bir artı veya eksi işareti ile en az üç basamaktan oluşur. Üs bu minimum şartı karşılamak için gerekirse sıfırlarla doldurulur.

Sonuç dizesi geçerli nesnenin biçimlendirme bilgilerinden NumberFormatInfo etkilenir. Aşağıdaki tabloda, döndürülen dizenin biçimlendirmesini denetleye özellikleri listeledik NumberFormatInfo .

NumberFormatInfo özellikleri Açıklama
NegativeSign Bir sayının hem katsayı hem de üs için negatif olduğunu belirten dizeyi tanımlar.
NumberDecimalSeparator Tamsayı basamağını, katsayıdaki ondalık basamaklardan ayıran dizeyi tanımlar.
PositiveSign Bir üssün pozitif olduğunu belirten dizeyi tanımlar.

Aşağıdaki örnek, bir Double değeri üstel biçim tanımlayıcısıyla biçimlendirer:

double value = 12345.6789;
Console::WriteLine(value.ToString("E", CultureInfo::InvariantCulture));
// Displays 1.234568E+004

Console::WriteLine(value.ToString("E10", CultureInfo::InvariantCulture));
// Displays 1.2345678900E+004

Console::WriteLine(value.ToString("e4", CultureInfo::InvariantCulture));
// Displays 1.2346e+004

Console::WriteLine(value.ToString("E", 
                  CultureInfo::CreateSpecificCulture("fr-FR")));
// Displays 1,234568E+004
double value = 12345.6789;
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture));
// Displays 1.234568E+004

Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture));
// Displays 1.2345678900E+004

Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture));
// Displays 1.2346e+004

Console.WriteLine(value.ToString("E",
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 1,234568E+004
Dim value As Double = 12345.6789
Console.WriteLine(value.ToString("E", CultureInfo.InvariantCulture))
' Displays 1.234568E+004

Console.WriteLine(value.ToString("E10", CultureInfo.InvariantCulture))
' Displays 1.2345678900E+004

Console.WriteLine(value.ToString("e4", CultureInfo.InvariantCulture))
' Displays 1.2346e+004

Console.WriteLine(value.ToString("E", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 1,234568E+004

Sabit nokta biçim tanımlayıcısı (F)

Sabit nokta ("F") biçim tanımlayıcısı sayıyı "-ddd.ddd..." biçimindeki bir dizeye dönüştürür burada her "d" bir basama (0-9) işaret eder. Sayı negatifse, dize eksi işaretiyle başlar.

Duyarlık belirtici, istenen ondalık basamak sayısını gösterir. Duyarlık belirtici atlanırsa, geçerli NumberFormatInfo.NumberDecimalDigits özellik sayısal duyarlığı sağlar.

Sonuç dizesi geçerli nesnenin biçimlendirme bilgilerinden NumberFormatInfo etkilenir. Aşağıdaki tabloda, sonuç dizesinin biçimlendirmesini NumberFormatInfo denetleen nesnenin özellikleri listelenir.

NumberFormatInfo özellikleri Açıklama
NegativeSign Bir sayının negatif olduğunu belirten dizeyi tanımlar.
NumberDecimalSeparator Tamsayı basamaklarını ondalık basamaklardan ayıran dizeyi tanımlar.
NumberDecimalDigits Varsayılan ondalık basamak sayısını tanımlar. B değeri hassasiyet belirleyici kullanılarak geçersiz kılınabilir.

Aşağıdaki örnek, bir Double ve Int32 değerini sabit nokta biçim tanımlayıcısıyla biçimlendirer:

int integerNumber;
integerNumber = 17843;
Console::WriteLine(integerNumber.ToString("F", 
                  CultureInfo::InvariantCulture));
// Displays 17843.00

integerNumber = -29541;
Console::WriteLine(integerNumber.ToString("F3", 
                  CultureInfo::InvariantCulture));
// Displays -29541.000

double doubleNumber;
doubleNumber = 18934.1879;
Console::WriteLine(doubleNumber.ToString("F", CultureInfo::InvariantCulture));
// Displays 18934.19

Console::WriteLine(doubleNumber.ToString("F0", CultureInfo::InvariantCulture));
// Displays 18934

doubleNumber = -1898300.1987;
Console::WriteLine(doubleNumber.ToString("F1", CultureInfo::InvariantCulture));  
// Displays -1898300.2

Console::WriteLine(doubleNumber.ToString("F3", 
                  CultureInfo::CreateSpecificCulture("es-ES")));
// Displays -1898300,199                        
int integerNumber;
integerNumber = 17843;
Console.WriteLine(integerNumber.ToString("F",
                  CultureInfo.InvariantCulture));
// Displays 17843.00

integerNumber = -29541;
Console.WriteLine(integerNumber.ToString("F3",
                  CultureInfo.InvariantCulture));
// Displays -29541.000

double doubleNumber;
doubleNumber = 18934.1879;
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture));
// Displays 18934.19

Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture));
// Displays 18934

doubleNumber = -1898300.1987;
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture));
// Displays -1898300.2

Console.WriteLine(doubleNumber.ToString("F3",
                  CultureInfo.CreateSpecificCulture("es-ES")));
// Displays -1898300,199
Dim integerNumber As Integer
integerNumber = 17843
Console.WriteLine(integerNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 17843.00

integerNumber = -29541
Console.WriteLine(integerNumber.ToString("F3", CultureInfo.InvariantCulture))
' Displays -29541.000

Dim doubleNumber As Double
doubleNumber = 18934.1879
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture))
' Displays 18934.19

Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture))
' Displays 18934

doubleNumber = -1898300.1987
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture))
' Displays -1898300.2

Console.WriteLine(doubleNumber.ToString("F3", _
                  CultureInfo.CreateSpecificCulture("es-ES")))
' Displays -1898300,199                        

Genel biçim belirtici (G)

Genel ("G") biçim belirticisi, sayıyı, sayının türüne ve bir duyarlık belirticinin mevcut olup olmadığına bağlı olarak sabit noktalı veya bilimsel gösterimdeki daha küçük bir sayıya dönüştürür. Duyarlık belirtici, sonuç dizesindeki görünebilir maksimum anlamlı basamak sayısını tanımlar. Duyarlık belirtici atlanırsa veya sıfır olursa, sayının türü, aşağıdaki tabloda gösterildiği gibi varsayılan duyarlığı belirler.

Sayısal tür Varsayılan duyarlık
Byte veya SByte 3 basamak
Int16 veya UInt16 5 basamak
Int32 veya UInt32 10 basamak
Int64 19 basamak
UInt64 20 basamak
BigInteger Sınırsız ( "R" ile aynı)
Half Sayıyı temsil eden en küçük gidiş dönüşlü basamak sayısı
Single Sayıyı temsil eden en küçük gidiş dönüşlü basamak sayısı (.NET Framework G7 varsayılandır)
Double Sayıyı temsil eden en küçük gidiş dönüşlü basamak sayısı (.NET Framework G15 varsayılandır)
Decimal Sayıyı temsil eden en küçük gidiş dönüşlü basamak sayısı

Sayı bilimsel gösterimde ifade edildiğinde elde edilen üs -5'ten büyükse ve duyarlık belirticiden küçükse sabit noktalı gösterim kullanılır; aksi takdirde bilimsel gösterim kullanılır. Sonuç gerekirse bir ondalık noktası içerir ve ondalık noktadan sonra gelen sıfırlar atlanır. Duyarlık belirtici varsa ve sonuçtaki anlamlı basamak sayısı, belirtilen duyarlığı aşarsa, sondaki fazlalık basamaklar yuvarlama tarafından kaldırılır.

Ancak, sayı bir Decimal ise ve duyarlık belirtici atlanırsa, sabit nokta gösterimi her zaman kullanılır ve sondaki sıfırlar korunur.

Bilimsel gösterim kullanılırsa, biçim belirtici "G" olduğunda sonuçtaki üssün başına "E", biçim belirtici "g" olduğunda "e" eklenir. Üs, en az iki basamak içerir. Bu, üs değerinde en az üç basamak içeren üssel biçim belirleyici tarafından üretilen bilimsel gösterim biçiminden farklıdır.

Bir Double değerle kullanıldığında, "G17" biçim tanımlayıcısı özgün Double değerin başarıyla gidiş dönüşler olmasını sağlar. Bunun nedeni Double , 17 anlamlı duyarlık basamağı veren IEEE 754-2008 uyumlu çift duyarlıklı (binary64) kayan noktalı sayıdır. bazı durumlarda "R" çift duyarlıklı kayan nokta değerlerini başarıyla döndüremediğinden, .NET Framework'de "R" biçim tanımlayıcısı yerine kullanılmasını öneririz.

Bir Single değerle kullanıldığında, "G9" biçim tanımlayıcısı özgün Single değerin başarıyla gidiş dönüşler olmasını sağlar. Bunun nedeni Single , dokuz anlamlı duyarlık basamağı veren IEEE 754-2008 uyumlu tek duyarlıklı (binary32) kayan noktalı sayı olmasıdır. Performans nedenleriyle , "R" biçim tanımlayıcısı yerine kullanılmasını öneririz.

Sonuç dizesi geçerli nesnenin biçimlendirme bilgilerinden NumberFormatInfo etkilenir. Aşağıdaki tabloda, sonuç dizesinin biçimlendirmesini denetleye özellikleri listeledik NumberFormatInfo .

NumberFormatInfo özellikleri Açıklama
NegativeSign Bir sayının negatif olduğunu belirten dizeyi tanımlar.
NumberDecimalSeparator Tamsayı basamaklarını ondalık basamaklardan ayıran dizeyi tanımlar.
PositiveSign Bir üssün pozitif olduğunu belirten dizeyi tanımlar.

Aşağıdaki örnek, çeşitli kayan nokta değerlerini genel biçim tanımlayıcısıyla biçimlendirmektedir:

double number;

number = 12345.6789;      
Console::WriteLine(number.ToString("G", CultureInfo::InvariantCulture));
// Displays  12345.6789
Console::WriteLine(number.ToString("G", 
                  CultureInfo::CreateSpecificCulture("fr-FR")));
// Displays 12345,6789
                        
Console::WriteLine(number.ToString("G7", CultureInfo::InvariantCulture));
// Displays 12345.68 

number = .0000023;
Console::WriteLine(number.ToString("G", CultureInfo::InvariantCulture));
// Displays 2.3E-06       
Console::WriteLine(number.ToString("G", 
                  CultureInfo::CreateSpecificCulture("fr-FR")));
// Displays 2,3E-06

number = .0023;
Console::WriteLine(number.ToString("G", CultureInfo::InvariantCulture));
// Displays 0.0023

number = 1234;
Console::WriteLine(number.ToString("G2", CultureInfo::InvariantCulture));
// Displays 1.2E+03

number = Math::PI;
Console::WriteLine(number.ToString("G5", CultureInfo::InvariantCulture));
// Displays 3.1416    
double number;

number = 12345.6789;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays  12345.6789
Console.WriteLine(number.ToString("G",
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 12345,6789

Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture));
// Displays 12345.68

number = .0000023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 2.3E-06
Console.WriteLine(number.ToString("G",
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 2,3E-06

number = .0023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 0.0023

number = 1234;
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture));
// Displays 1.2E+03

number = Math.PI;
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture));
// Displays 3.1416
Dim number As Double

number = 12345.6789
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays  12345.6789
Console.WriteLine(number.ToString("G", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 12345,6789

Console.WriteLine(number.ToString("G7", CultureInfo.InvariantCulture))
' Displays 12345.68 

number = .0000023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 2.3E-06       
Console.WriteLine(number.ToString("G", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 2,3E-06

number = .0023
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture))
' Displays 0.0023

number = 1234
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture))
' Displays 1.2E+03

number = Math.Pi
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture))
' Displays 3.1416    

Sayısal biçim tanımlayıcısı (N)

Sayısal ("N") biçim belirteci bir sayıyı "-d,ddd,ddd.ddd…" biçiminde bir dizeye dönüştürür; burada "-" gerekirse negatif bir sayı simgesini, "d" bir basamağı (0-9) gösterir, "," bir grup ayırıcıyı gösterir ve "." bir ondalık simgesini gösterir. Duyarlık belirtici, ondalık noktasından sonraki istenen basamak sayısını gösterir. Duyarlık belirtici atlanırsa, ondalık basamak sayısı geçerli NumberFormatInfo.NumberDecimalDigits özellik tarafından tanımlanır.

Sonuç dizesi geçerli nesnenin biçimlendirme bilgilerinden NumberFormatInfo etkilenir. Aşağıdaki tabloda, sonuç dizesinin biçimlendirmesini denetleye özellikleri listeledik NumberFormatInfo .

NumberFormatInfo özellikleri Açıklama
NegativeSign Bir sayının negatif olduğunu belirten dizeyi tanımlar.
NumberNegativePattern Negatif değerlerin biçimini tanımlar ve negatif işaretin parantezlerle mi yoksa NegativeSign özellikle mi temsil edilmeyeceğini belirtir.
NumberGroupSizes Grup ayırıcıları arasında görüntülenen tam sayı basamak sayısını tanımlar.
NumberGroupSeparator Tam sayı gruplarını ayıran dizeyi tanımlar.
NumberDecimalSeparator Tamsayı ve ondalık basamakları ayıran dizeyi tanımlar.
NumberDecimalDigits Varsayılan ondalık basamak sayısını tanımlar. B değeri bir hassasiyet belirleyici kullanılarak geçersiz kılınabilir.

Aşağıdaki örnek, çeşitli kayan nokta değerlerini sayı biçimi tanımlayıcısıyla biçimlendirmektedir:

double dblValue = -12445.6789;
Console::WriteLine(dblValue.ToString("N", CultureInfo::InvariantCulture));
// Displays -12,445.68
Console::WriteLine(dblValue.ToString("N1", 
                  CultureInfo::CreateSpecificCulture("sv-SE")));
// Displays -12 445,7

int intValue = 123456789;
Console::WriteLine(intValue.ToString("N1", CultureInfo::InvariantCulture));
// Displays 123,456,789.0 
double dblValue = -12445.6789;
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture));
// Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1",
                  CultureInfo.CreateSpecificCulture("sv-SE")));
// Displays -12 445,7

int intValue = 123456789;
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture));
// Displays 123,456,789.0
Dim dblValue As Double = -12445.6789
Console.WriteLine(dblValue.ToString("N", CultureInfo.InvariantCulture))
' Displays -12,445.68
Console.WriteLine(dblValue.ToString("N1", _
                  CultureInfo.CreateSpecificCulture("sv-SE")))
' Displays -12 445,7

Dim intValue As Integer = 123456789
Console.WriteLine(intValue.ToString("N1", CultureInfo.InvariantCulture))
' Displays 123,456,789.0 

Yüzde biçimi tanımlayıcısı (P)

Yüzde ("P") biçim belirticisi sayıyı 100 ile çarpar ve yüzde temsil eden bir dizeye dönüştürür. Duyarlık belirtici, istenen ondalık basamak sayısını gösterir. Duyarlık belirtici atlanırsa, geçerli PercentDecimalDigits özellik tarafından sağlanan varsayılan sayısal duyarlık kullanılır.

Aşağıdaki tabloda, döndürülen dizenin biçimlendirmesini denetleye özellikleri listeledik NumberFormatInfo .

NumberFormatInfo özellikleri Açıklama
PercentPositivePattern Pozitif değerler için yüzde sembolünün yerleşimini tanımlar.
PercentNegativePattern Negatif değerler için yüzde sembolünün ve eksi sembolünün yerleşimini tanımlar.
NegativeSign Bir sayının negatif olduğunu belirten dizeyi tanımlar.
PercentSymbol Yüzde sembolünü tanımlar.
PercentDecimalDigits Yüzde değerindeki varsayılan ondalık basamak sayısını tanımlar. B değeri hassasiyet belirleyici kullanılarak geçersiz kılınabilir.
PercentDecimalSeparator Tamsayı ve ondalık basamakları ayıran dizeyi tanımlar.
PercentGroupSeparator Tam sayı gruplarını ayıran dizeyi tanımlar.
PercentGroupSizes Bir grup içinde görüntülenen tamsayı basamak sayısını tanımlar.

Aşağıdaki örnek kayan nokta değerlerini yüzde biçimi tanımlayıcısıyla biçimlendirmektedir:

double number = .2468013;
Console::WriteLine(number.ToString("P", CultureInfo::InvariantCulture));
// Displays 24.68 %
Console::WriteLine(number.ToString("P", 
                  CultureInfo::CreateSpecificCulture("hr-HR")));
// Displays 24,68%     
Console::WriteLine(number.ToString("P1", CultureInfo::InvariantCulture));
// Displays 24.7 %
double number = .2468013;
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture));
// Displays 24.68 %
Console.WriteLine(number.ToString("P",
                  CultureInfo.CreateSpecificCulture("hr-HR")));
// Displays 24,68%
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture));
// Displays 24.7 %
Dim number As Double = .2468013
Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture))
' Displays 24.68 %
Console.WriteLine(number.ToString("P", _
                  CultureInfo.CreateSpecificCulture("hr-HR")))
' Displays 24,68%     
Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture))
' Displays 24.7 %

Gidiş dönüş biçimi tanımlayıcısı (R)

Gidiş dönüş ("R") biçim belirticisi, bir dizeye dönüştürülen sayısal değerin aynı sayısal değere geri ayrıştırılmasını sağlamaya çalışır. Bu biçim yalnızca , Single, Doubleve BigInteger türleri için Halfdesteklenir.

.NET Framework ve 3.0'dan önceki .NET Core sürümlerinde , "R" biçim tanımlayıcısı bazı durumlarda gidiş dönüş Double değerlerini başarılı bir şekilde başarısız olur. Hem hem de DoubleSingle değerleri için "R" biçim belirticisi görece düşük performans sunar. Bunun yerine, değerler için Double"G17" biçim tanımlayıcısını ve "G9" biçim tanımlayıcısını kullanarak gidiş dönüş Single değerlerini başarıyla kullanmanızı öneririz.

Bir BigInteger değer bu tanımlayıcı kullanılarak biçimlendirildiğinde, dize gösterimi değerdeki BigInteger tüm anlamlı basamakları içerir.

Bir duyarlık belirtici ekleyebilirsiniz, ancak bu yoksayılır. Bu belirleyici kullanırken gidiş dönüşlere duyarlılık üzerinde öncelik verilir. Sonuç dizesi geçerli nesnenin biçimlendirme bilgilerinden NumberFormatInfo etkilenir. Aşağıdaki tabloda, sonuç dizesinin biçimlendirmesini denetleye özellikleri listeledik NumberFormatInfo .

NumberFormatInfo özellikleri Açıklama
NegativeSign Bir sayının negatif olduğunu belirten dizeyi tanımlar.
NumberDecimalSeparator Tamsayı basamaklarını ondalık basamaklardan ayıran dizeyi tanımlar.
PositiveSign Bir üssün pozitif olduğunu belirten dizeyi tanımlar.

Aşağıdaki örnek, bir BigInteger değeri gidiş dönüş biçim tanımlayıcısıyla biçimlendirer.

#using <System.Numerics.dll>

using namespace System;
using namespace System::Numerics;

void main()
{ 
   BigInteger value = BigInteger::Pow(Int64::MaxValue, 2);
   Console::WriteLine(value.ToString("R"));
}
// The example displays the following output:
//      85070591730234615847396907784232501249  


using System;
using System.Numerics;

public class Example
{
   public static void Main()
   {
      var value = BigInteger.Pow(Int64.MaxValue, 2);
      Console.WriteLine(value.ToString("R"));
   }
}
// The example displays the following output:
//      85070591730234615847396907784232501249
Imports System.Numerics

Module Example
    Public Sub Main()
        Dim value = BigInteger.Pow(Int64.MaxValue, 2)
        Console.WriteLine(value.ToString("R"))
    End Sub
End Module
' The example displays the following output:
'      85070591730234615847396907784232501249  

Önemli

Bazı durumlarda, Double "R" standart sayısal biçim dizesiyle biçimlendirilmiş değerler, veya /platform:anycpu anahtarları kullanılarak /platform:x64 derlenip 64 bit sistemlerde çalıştırılırsa başarıyla gidiş dönüş yapmaz. Daha fazla bilgi için aşağıdaki paragrafa bakın.

veya anahtarları kullanılarak /platform:x64 derlenip 64 bit sistemlerde çalıştırılırsa "R" standart sayısal biçim dizesinin başarıyla yuvarlanmamasıyla biçimlendirilmiş değerler sorununu Double geçici olarak çözmek için, "G17" standart sayısal biçim dizesini kullanarak değerleri biçimlendirebilirsinizDouble./platform:anycpu Aşağıdaki örnek, "R" biçim dizesini, başarıyla gidiş dönüş yapmayan bir Double değerle kullanır ve ayrıca özgün değere başarıyla gidiş dönüş yapmak için "G17" biçim dizesini kullanır:

Console.WriteLine("Attempting to round-trip a Double with 'R':");
double initialValue = 0.6822871999174;
string valueString = initialValue.ToString("R",
                                           CultureInfo.InvariantCulture);
double roundTripped = double.Parse(valueString,
                                   CultureInfo.InvariantCulture);
Console.WriteLine("{0:R} = {1:R}: {2}\n",
                  initialValue, roundTripped, initialValue.Equals(roundTripped));

Console.WriteLine("Attempting to round-trip a Double with 'G17':");
string valueString17 = initialValue.ToString("G17",
                                             CultureInfo.InvariantCulture);
double roundTripped17 = double.Parse(valueString17,
                                     CultureInfo.InvariantCulture);
Console.WriteLine("{0:R} = {1:R}: {2}\n",
                  initialValue, roundTripped17, initialValue.Equals(roundTripped17));
// If compiled to an application that targets anycpu or x64 and run on an x64 system,
// the example displays the following output:
//       Attempting to round-trip a Double with 'R':
//       0.6822871999174 = 0.68228719991740006: False
//
//       Attempting to round-trip a Double with 'G17':
//       0.6822871999174 = 0.6822871999174: True
Imports System.Globalization

Module Example
    Public Sub Main()
        Console.WriteLine("Attempting to round-trip a Double with 'R':")
        Dim initialValue As Double = 0.6822871999174
        Dim valueString As String = initialValue.ToString("R",
                                                 CultureInfo.InvariantCulture)
        Dim roundTripped As Double = Double.Parse(valueString,
                                                  CultureInfo.InvariantCulture)
        Console.WriteLine("{0:R} = {1:R}: {2}",
                          initialValue, roundTripped, initialValue.Equals(roundTripped))
        Console.WriteLine()

        Console.WriteLine("Attempting to round-trip a Double with 'G17':")
        Dim valueString17 As String = initialValue.ToString("G17",
                                                   CultureInfo.InvariantCulture)
        Dim roundTripped17 As Double = double.Parse(valueString17,
                                              CultureInfo.InvariantCulture)
        Console.WriteLine("{0:R} = {1:R}: {2}",
                          initialValue, roundTripped17, initialValue.Equals(roundTripped17))
    End Sub
End Module
' If compiled to an application that targets anycpu or x64 and run on an x64 system,
' the example displays the following output:
'       Attempting to round-trip a Double with 'R':
'       0.6822871999174 = 0.68228719991740006: False
'
'       Attempting to round-trip a Double with 'G17':
'       0.6822871999174 = 0.6822871999174: True

Onaltılık biçim tanımlayıcısı (X)

("X") onaltılı biçim belirticisi bir sayıyı onaltı basamaklı bir dizeye dönüştürür. Biçim belirticisinin durumu, 9'dan büyük onaltılık basamak için büyük veya küçük harf kullanılıp kullanılmayacağını belirtir. Örneğin, "ABCDEF" üretmek için "X" ve "abcdef" üretmek için "x" kullanın. Bu biçim yalnızca tam sayı türleri için desteklenir.

Duyarlık belirtici, sonuç dizesindeki istenen minimum basamak sayısını gösterir. Gerekirse, duyarlık belirtici tarafından verilen basamak sayısını üretmek için sayının sol tarafı sıfırlarla doldurulur

Sonuç dizesi geçerli NumberFormatInfo nesnenin biçimlendirme bilgilerinden etkilenmez.

Aşağıdaki örnek, değerleri onaltılık biçim tanımlayıcısıyla biçimlendirir Int32 .

int value; 

value = 0x2045e;
Console::WriteLine(value.ToString("x"));
// Displays 2045e
Console::WriteLine(value.ToString("X"));
// Displays 2045E
Console::WriteLine(value.ToString("X8"));
// Displays 0002045E

value = 123456789;
Console::WriteLine(value.ToString("X"));
// Displays 75BCD15
Console::WriteLine(value.ToString("X2"));
// Displays 75BCD15
int value;

value = 0x2045e;
Console.WriteLine(value.ToString("x"));
// Displays 2045e
Console.WriteLine(value.ToString("X"));
// Displays 2045E
Console.WriteLine(value.ToString("X8"));
// Displays 0002045E

value = 123456789;
Console.WriteLine(value.ToString("X"));
// Displays 75BCD15
Console.WriteLine(value.ToString("X2"));
// Displays 75BCD15
Dim value As Integer

value = &h2045e
Console.WriteLine(value.ToString("x"))
' Displays 2045e
Console.WriteLine(value.ToString("X"))
' Displays 2045E
Console.WriteLine(value.ToString("X8"))
' Displays 0002045E

value = 123456789
Console.WriteLine(value.ToString("X"))
' Displays 75BCD15
Console.WriteLine(value.ToString("X2"))
' Displays 75BCD15

Notlar

Bu bölüm, standart sayısal biçim dizelerini kullanma hakkında ek bilgiler içerir.

Denetim Masası ayarları

Denetim Masası'daki Bölge ve Dil Seçenekleri öğesindeki ayarlar, biçimlendirme işlemi tarafından üretilen sonuç dizesini etkiler. Bu ayarlar, geçerli kültürle ilişkili nesneyi başlatmak NumberFormatInfo için kullanılır ve bu da biçimlendirmeyi idare etmek için kullanılan değerleri sağlar. Farklı ayarları kullanan bilgisayarlar farklı sonuç dizeleri üretir.

Ayrıca, oluşturucu geçerli sistem kültürüyle aynı kültürü temsil eden yeni CultureInfo bir nesnenin örneğini oluşturmak için kullanılırsaCultureInfo(String), Denetim Masası'daki Bölge ve Dil Seçenekleri öğesi tarafından oluşturulan tüm özelleştirmeler yeni CultureInfo nesneye uygulanır. Bir sistemin özelleştirmelerini yansıtmayan bir CultureInfo nesne oluşturmak için oluşturucuyu kullanabilirsinizCultureInfo(String, Boolean).

NumberFormatInfo özellikleri

Biçimlendirme, geçerli NumberFormatInfo kültürün örtük olarak veya biçimlendirmeyi çağıran yönteminin parametresi tarafından IFormatProvider açıkça sağlanan geçerli nesnenin özelliklerinden etkilenir. Bu parametre için bir NumberFormatInfo veya CultureInfo nesnesi belirtin.

Not

Sayısal değerleri biçimlendirmek için kullanılan desenleri veya dizeleri özelleştirme hakkında bilgi için sınıf konusuna NumberFormatInfo bakın.

Tam sayı ve kayan nokta sayısal türleri

Bazı standart sayısal biçim belirticilerinin açıklamaları, ayrılmaz veya kayan nokta sayısal türlere başvurur. Tam sayı türleri , , SByte, Int16, Int32, Int64, UInt16, UInt32UInt64ve BigInteger'dırByte. Kayan nokta sayısal türleri , Half, Singleve Double'dırDecimal.

Kayan nokta sonsuzlukları ve NaN

Biçim dizesi ne olursa olsun, bir Half, Singleveya Double kayan nokta türünün değeri pozitif sonsuz, negatif sonsuz veya sayı (NaN) değilse, biçimlendirilmiş dize geçerli nesne tarafından belirtilen ilgili PositiveInfinitySymbol, NegativeInfinitySymbolveya NaNSymbol özelliğinin NumberFormatInfo değeridir.

Kod örneği

Aşağıdaki örnek, bir tamsayı ve kayan nokta sayısal değerini ing-ABD kültürü ve tüm standart sayısal biçim tanımlayıcılarını kullanarak biçimlendirir. Bu örnekte belirli iki sayısal tür (Double ve Int32) kullanılır, ancak diğer sayısal temel türlerden herhangi biri için (Byte, SByte, Int16, , Int32, Int64, UInt16, UInt32, UInt64, DecimalBigIntegerHalfve Single) benzer sonuçlar verir.

// Display string representations of numbers for en-us culture
CultureInfo ci = new CultureInfo("en-us");

// Output floating point values
double floating = 10761.937554;
Console.WriteLine("C: {0}",
        floating.ToString("C", ci));           // Displays "C: $10,761.94"
Console.WriteLine("E: {0}",
        floating.ToString("E03", ci));         // Displays "E: 1.076E+004"
Console.WriteLine("F: {0}",
        floating.ToString("F04", ci));         // Displays "F: 10761.9376"
Console.WriteLine("G: {0}",
        floating.ToString("G", ci));           // Displays "G: 10761.937554"
Console.WriteLine("N: {0}",
        floating.ToString("N03", ci));         // Displays "N: 10,761.938"
Console.WriteLine("P: {0}",
        (floating/10000).ToString("P02", ci)); // Displays "P: 107.62 %"
Console.WriteLine("R: {0}",
        floating.ToString("R", ci));           // Displays "R: 10761.937554"
Console.WriteLine();

// Output integral values
int integral = 8395;
Console.WriteLine("C: {0}",
        integral.ToString("C", ci));           // Displays "C: $8,395.00"
Console.WriteLine("D: {0}",
        integral.ToString("D6", ci));          // Displays "D: 008395"
Console.WriteLine("E: {0}",
        integral.ToString("E03", ci));         // Displays "E: 8.395E+003"
Console.WriteLine("F: {0}",
        integral.ToString("F01", ci));         // Displays "F: 8395.0"
Console.WriteLine("G: {0}",
        integral.ToString("G", ci));           // Displays "G: 8395"
Console.WriteLine("N: {0}",
        integral.ToString("N01", ci));         // Displays "N: 8,395.0"
Console.WriteLine("P: {0}",
        (integral/10000.0).ToString("P02", ci)); // Displays "P: 83.95 %"
Console.WriteLine("X: 0x{0}",
        integral.ToString("X", ci));           // Displays "X: 0x20CB"
Console.WriteLine();
Option Strict On

Imports System.Globalization
Imports System.Threading

Module NumericFormats
    Public Sub Main()
        ' Display string representations of numbers for en-us culture
        Dim ci As New CultureInfo("en-us")

        ' Output floating point values
        Dim floating As Double = 10761.937554
        Console.WriteLine("C: {0}", _
                floating.ToString("C", ci))           ' Displays "C: $10,761.94"
        Console.WriteLine("E: {0}", _
                floating.ToString("E03", ci))         ' Displays "E: 1.076E+004"
        Console.WriteLine("F: {0}", _
                floating.ToString("F04", ci))         ' Displays "F: 10761.9376"         
        Console.WriteLine("G: {0}", _
                floating.ToString("G", ci))           ' Displays "G: 10761.937554"
        Console.WriteLine("N: {0}", _
                floating.ToString("N03", ci))         ' Displays "N: 10,761.938"
        Console.WriteLine("P: {0}", _
                (floating / 10000).ToString("P02", ci)) ' Displays "P: 107.62 %"
        Console.WriteLine("R: {0}", _
                floating.ToString("R", ci))           ' Displays "R: 10761.937554"            
        Console.WriteLine()

        ' Output integral values
        Dim integral As Integer = 8395
        Console.WriteLine("C: {0}", _
                integral.ToString("C", ci))           ' Displays "C: $8,395.00"
        Console.WriteLine("D: {0}", _
                integral.ToString("D6"))              ' Displays "D: 008395" 
        Console.WriteLine("E: {0}", _
                integral.ToString("E03", ci))         ' Displays "E: 8.395E+003"
        Console.WriteLine("F: {0}", _
                integral.ToString("F01", ci))         ' Displays "F: 8395.0"    
        Console.WriteLine("G: {0}", _
                integral.ToString("G", ci))           ' Displays "G: 8395"
        Console.WriteLine("N: {0}", _
                integral.ToString("N01", ci))         ' Displays "N: 8,395.0"
        Console.WriteLine("P: {0}", _
                (integral / 10000).ToString("P02", ci)) ' Displays "P: 83.95 %"
        Console.WriteLine("X: 0x{0}", _
                integral.ToString("X", ci))           ' Displays "X: 0x20CB"
        Console.WriteLine()
    End Sub
End Module

Ayrıca bkz.