Aracılığıyla paylaş


Standart sayısal biçim dizeleri

Standart sayısal biçim dizeleri, yaygın 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 , para birimi veya yüzde gibi sayı biçimi türünü belirten tek bir alfabetik karakterdir. Boşluk da dahil olmak üzere birden fazla alfabetik karakter içeren herhangi bir sayısal biçim dizesi, özel 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'dir. .NET 6'da en yüksek duyarlık değeridir 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ıyı yuvarlamaz. Yuvarlama işlemi gerçekleştirmek için , Math.Ceilingveya Math.Floor yöntemini kullanınMath.Round.

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

    • .NET Framework ve .NET Core 2.0'a kadar olan .NET Core'da çalışma zamanı sonucu en az önemli basamakla (yani kullanarak MidpointRounding.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.

    Uyarı

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

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

Tavsiye

Sayısal veya tarih ve saat değerlerine biçim dizeleri 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 üretilen ö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ştirme ve ICU.

Biçim tanımlayıcısı İsim Açıklama Örnekler
"B" veya "b" İkilik 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 Numara Numarası>

255 ("B16")
-> 0000000011111111
"C" veya "c" Para birimi Sonuç: 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 ABD doları

123,456 ("C", fr-FR)
Kalkan Halk Plajı> 123,46 €

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

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

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

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

Tarafından desteklenir: Yalnızca integral türleri.

Duyarlık belirtici: En az basamak sayısı.

Varsayılan duyarlık belirtici: Gereken en az basamak sayısı.

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

-1234 ("D6")
-> -001234
"E" veya "e" Üstel (bilimsel) Sonuç: Üstel gösterim.

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

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

Varsayılan duyarlık tanımlayıcısı: 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" veya "f" Sabit nokta Sonuç: İsteğe bağlı negatif işareti olan integral 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", en-US)
-> 1234,57

1234,567 (“F”, de-DE)
-> 1234,57

1234 ("F1", en-US)
-> 1234,0

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

-1234,56 ("F4", en-US)
-> -1234.5600

-1234,56 ("F4", de-DE)
-> -1234.5600
"G" veya "g" Genel Sonuç: Sabit noktalı veya bilimsel gösterimin daha kompaktı.

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

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

Varsayılan duyarlık tanımlayıcısı: Sayısal türe bağlıdır.

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

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

123.4546 ("G4", en-US)
-> 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" veya "n" Sayı Sonuç: İntegral ve ondalık basamaklar, grup ayırıcıları ve isteğe bağlı negatif işareti olan 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", en-US)
-> 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" veya "p" Yüzde Sonuç: Sayı 100 ile çarpılır ve yüzde simgesiyle 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)
Kalkan Halk Plajı> -39,7 %
"R" veya "r" Gidiş dönüş Sonuç: Aynı sayıya gidiş dönüş yapabilecek 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 tanımlayıcısı: Yoksayıldı.

Daha fazla bilgi: Gidiş dönüş ("R") Biçim Tanımlayıcısı.
123456789.12345678 ("R")
-> 123456789.12345678

-1234567890.12345678 ("R")
-> -1234567890.1234567
"X" veya "x" Onaltı -lık Sonuç: Onaltılık dize.

Tarafından desteklenir: Yalnızca 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 (İngilizce)

-1 ("x")
-> ff

255 ("x4")
-> 00ff

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

Standart sayısal biçim dizelerini kullanma

Uyarı

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 bir pencerede ö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ştirilen kodu çalıştırabilirsiniz. Değiştirilen kod etkileşimli pencerede çalışır veya derleme başarısız olursa, etkileşimli pencerede tüm C# derleyicisi hata iletileri görüntülenir.

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

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

    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 formatStringgibi yöntemlerle kullanılan bir biçim öğesinde bağımsız değişken olarak String.FormatConsole.WriteLineStringBuilder.AppendFormatsağlanabilir. Daha fazla bilgi için bkz . Bileşik Biçimlendirme. Aşağıdaki örnek, bir dizeye para birimi değeri eklemek için biçim öğesini kullanır.

    decimal value = 123.456m;
    Console.WriteLine($"Your account balance is {value:C2}.");
    // 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.

    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, standart sayısal biçim dizelerinin her biri hakkında ayrıntılı bilgi sağlanır.

İkili biçim tanımlayıcısı (B)

İkili ("B") biçim belirticisi sayıyı ikili basamak 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çta elde edilen dizede istenen en az basamak sayısını gösterir. Gerekirse, sayı, duyarlık tanımlayıcısı tarafından verilen basamak sayısını üretmek için solunda sıfırlarla doldurulur.

için BigInteger, pozitif değerlerin negatif değerlerden ayırt etmek için her zaman bir baştaki sıfırı vardır. Bu, çıkış gidiş dönüşlerinin ayrıştırıldığında özgün değere döndürülmesini sağlar. Örneğin, biçim belirticisi 3 ile dönüştürülen sayı "B2" şeklindedir"011". Bunun nedeni, ikili sayının "11" negatif değerini -1temsil ediyor olmasıdır çünkü biçimi nedeniyle 2 tam "B2" olarak bit içeren bir sayı olarak yorumlanır.

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

Para birimi biçim belirticisi (C)

"C" (veya para birimi) biçim belirticisi bir sayıyı para birimi tutarını temsil eden bir dizeye dönüştürür. Duyarlık belirtici, sonuç dizesinde 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 fazlaysa, kesirli değer sonuç dizesinde 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, NumberFormatInfo döndürülen dizenin biçimlendirmesini denetleyen özellikler listelenir.

NumberFormatInfo özelliği Açıklama
CurrencyPositivePattern Pozitif değerler için para birimi simgesinin yerleşimini tanımlar.
CurrencyNegativePattern Negatif değerler için para birimi simgesinin yerleşimini tanımlar ve negatif işaretin parantezlerle mi yoksa NegativeSign özellikle mi temsil edilmeyeceğini belirtir.
NegativeSign Parantezlerin kullanılmadığını gösterirse CurrencyNegativePattern kullanılan negatif işareti tanımlar.
CurrencySymbol Para birimi simgesini tanımlar.
CurrencyDecimalDigits Para birimi değerindeki varsayılan ondalık basamak sayısını tanımlar. Bu değer, duyarlık tanımlayıcısı kullanılarak geçersiz kılınabilir.
CurrencyDecimalSeparator İntegral ve ondalık basamakları ayıran dizeyi tanımlar.
CurrencyGroupSeparator Tam sayı gruplarını ayıran dizeyi tanımlar.
CurrencyGroupSizes Bir grupta görünen tamsayı basamaklarının sayısını tanımlar.

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

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 ondalık basamaklar (0-9) dizesine dönüştürür. Bu biçim yalnızca tam sayı türleri için desteklenir.

Duyarlık belirtici, sonuçta elde edilen dizede istenen en az basamak sayısını gösterir. Gerekirse, sayı, duyarlık tanımlayıcısı tarafından verilen basamak sayısını üretmek için solunda sıfırlarla doldurulur. Duyarlık belirtici belirtilmezse, varsayılan değer, tamsayıyı baştaki sıfırlar olmadan göstermek için gereken en düşük 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 özelliği Açıklama
NegativeSign Bir sayinin negatif olduğunu belirten dizeyi tanımlar.

Aşağıdaki örnek, bir Int32 değeri ondalık biçim tanımlayıcısıyla biçimlendirdi.

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 tanımlayıcısı bir sayıyı "-d.ddd... biçimindeki bir dizeye dönüştürür. E+ddd" veya "-d.ddd... e+ddd", burada her "d" bir basamak (0-9) gösterir. Sayı negatifse dize eksi işaretiyle başlar. Tam olarak bir basamak her zaman ondalık ayırıcıdan önce gelir.

Duyarlık belirtici, ondalık ayırıcıdan sonra istenen basamak sayısını gösterir. Duyarlık belirtici atlanırsa, ondalık ayırıcıdan sonraki varsayılan altı basamak kullanılır.

Biçim belirticisinin durumu, üssün önüne "E" veya "e" ekinin eklenip eklmeyeceğini belirtir. Üs her zaman artı veya eksi işaretinden ve en az üç basamaktan oluşur. Üs, gerekirse bu minimumu karşılamak için sıfırlarla doldurulur.

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

NumberFormatInfo özelliği Açıklama
NegativeSign Bir sayinin hem katsayı hem de üs için negatif olduğunu gösteren dizeyi tanımlar.
NumberDecimalSeparator İntegral basamağı katsayıdaki ondalık basamaklardan ayıran dizeyi tanımlar.
PositiveSign Bir üssün pozitif olduğunu gösteren dizeyi tanımlar.

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

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ı bir sayıyı "-ddd.ddd..." biçimindeki bir dizeye dönüştürür burada her "d" bir basamak (0-9) gösterir. 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 özelliği Açıklama
NegativeSign Bir sayinin negatif olduğunu belirten dizeyi tanımlar.
NumberDecimalSeparator Tam sayı basamaklarını ondalık basamaklardan ayıran dizeyi tanımlar.
NumberDecimalDigits Varsayılan ondalık basamak sayısını tanımlar. Bu değer, duyarlık tanımlayıcısı 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
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 tanımlayıcısı (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österimden daha küçük bir sayıya dönüştürür. Duyarlık belirtici, sonuç dizesinde görünebilecek en fazla anlamlı basamak sayısını tanımlar. Duyarlık belirtici atlanırsa veya sıfırsa, aşağıdaki tabloda gösterildiği gibi, sayının türü 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üş basamak sayısı (.NET Framework'te varsayılan değer G7'dir)
Double Sayıyı temsil eden en küçük gidiş dönüş basamak sayısı (.NET Framework'te varsayılan değer G15'tir)
Decimal Sayıyı temsil eden en küçük gidiş dönüşlü basamak sayısı

Sabit nokta gösterimi, bilimsel gösterimde sayıyı ifade etmekten kaynaklanan üs -5'den büyük ve duyarlık belirticiden küçükse kullanılır; aksi takdirde bilimsel notasyon kullanılır. Sonuç gerekirse bir ondalık nokta içerir ve ondalık ayırıcıdan sonra gelen sıfırlar atlanır. Duyarlık belirtici mevcutsa ve sonuçtaki önemli basamak sayısı belirtilen duyarlığı aşarsa, fazla sondaki basamaklar yuvarlama ile 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österimi kullanılırsa, biçim belirtici "G" ise sonuçtaki üs "E" veya biçim belirtici "g" ise "e" ön ekini alır. Üs en az iki basamak içerir. Bu, üs içinde en az üç basamak içeren üstel biçim tanımlayıcısı 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 gönderemediğinden .NET Framework'te "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ılı bir şekilde gidiş dönüşler olmasını sağlar. Bunun nedeni Single IEEE 754-2008 uyumlu tek duyarlıklı (binary32) kayan noktalı sayının en fazla dokuz anlamlı duyarlık basamak vermesidir. 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 denetleen özellikler listelenir NumberFormatInfo .

NumberFormatInfo özelliği Açıklama
NegativeSign Bir sayinin negatif olduğunu belirten dizeyi tanımlar.
NumberDecimalSeparator Tam sayı basamaklarını ondalık basamaklardan ayıran dizeyi tanımlar.
PositiveSign Bir üssün pozitif olduğunu gösteren 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
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 tanımlayıcısı sayıyı "-d,ddd,ddd.d..." biçimindeki bir dizeye dönüştürür; burada "-" gerekirse negatif sayı simgesini, "d" bir basamak (0-9), "," bir grup ayırıcısını, "." ise ondalık ayırıcı simgesini belirtir. Duyarlık belirtici, ondalık ayırıcıdan sonra 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 denetleen özellikler listelenir NumberFormatInfo .

NumberFormatInfo özelliği Açıklama
NegativeSign Bir sayinin 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ünen tam sayı basamaklarının sayısını tanımlar.
NumberGroupSeparator Tam sayı gruplarını ayıran dizeyi tanımlar.
NumberDecimalSeparator İntegral ve ondalık basamakları ayıran dizeyi tanımlar.
NumberDecimalDigits Varsayılan ondalık basamak sayısını tanımlar. Bu değer bir duyarlık belirtici 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
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 bir sayıyı 100 ile çarpar ve yüzdeyi 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, NumberFormatInfo döndürülen dizenin biçimlendirmesini denetleyen özellikler listelenir.

NumberFormatInfo özelliği Açıklama
PercentPositivePattern Pozitif değerler için yüzde simgesinin yerleşimini tanımlar.
PercentNegativePattern Negatif değerler için yüzde simgesinin ve negatif simgesinin yerleşimini tanımlar.
NegativeSign Bir sayinin negatif olduğunu belirten dizeyi tanımlar.
PercentSymbol Yüzde simgesini tanımlar.
PercentDecimalDigits Bir yüzde değerindeki varsayılan ondalık basamak sayısını tanımlar. Bu değer, duyarlık tanımlayıcısı kullanılarak geçersiz kılınabilir.
PercentDecimalSeparator İntegral ve ondalık basamakları ayıran dizeyi tanımlar.
PercentGroupSeparator Tam sayı gruplarını ayıran dizeyi tanımlar.
PercentGroupSizes Bir grupta görünen tamsayı basamaklarının 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 %
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çim 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 , Half, Singleve Double türleri için BigIntegerdesteklenir.

.NET Framework'te 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 tanımlayıcısı görece düşük performans sunar. Bunun yerine, değerler için "G17" biçim tanımlayıcısını ve gidiş dönüş Double değerlerini başarılı bir şekilde kullanmak için Single biçim tanımlayıcısını kullanmanızı öneririz.

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

Bir duyarlık tanımlayıcısı ekleyebilmenize rağmen, bu yok sayılır. Bu tanımlayıcı kullanılırken gidiş dönüşlere duyarlığa göre öncelik verilir. Sonuç dizesi geçerli nesnenin biçimlendirme bilgilerinden NumberFormatInfo etkilenir. Aşağıdaki tabloda, sonuç dizesinin biçimlendirmesini denetleen özellikler listelenir NumberFormatInfo .

NumberFormatInfo özelliği Açıklama
NegativeSign Bir sayinin negatif olduğunu belirten dizeyi tanımlar.
NumberDecimalSeparator Tam sayı basamaklarını ondalık basamaklardan ayıran dizeyi tanımlar.
PositiveSign Bir üssün pozitif olduğunu gösteren dizeyi tanımlar.

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

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:x64 anahtarları kullanılarak /platform:anycpu 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 Double 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 sorununa /platform:x64 geçici bir çözüm bulmak için, "G17" standart sayısal biçim dizesini kullanarak değerleri biçimlendirebilirsiniz/platform:anycpu.Double Aşağıdaki örnek, "R" biçim dizesini başarılı bir şekilde gidiş dönüş yapmayan bir Double değerle kullanır ve ayrıca özgün değeri 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($"{initialValue:R} = {roundTripped:R}: {initialValue.Equals(roundTripped)}\n");

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($"{initialValue:R} = {roundTripped17:R}: {initialValue.Equals(roundTripped17)}\n");
// 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':
//       .NET Framework:
//       0.6822871999174 = 0.68228719991740006: False
//       .NET:
//       0.6822871999174 = 0.6822871999174: True
//
//       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':
'       .NET Framework:
'       0.6822871999174 = 0.68228719991740006: False
'       .NET:
'       0.6822871999174 = 0.6822871999174: True
'
'       Attempting to round-trip a Double with 'G17':
'       0.6822871999174 = 0.6822871999174: True

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

Onaltılık ("X") biçim tanımlayıcısı bir sayıyı onaltılık basamak dizesine dönüştürür. Biçim belirticisinin durumu, 9'dan büyük onaltılık basamaklar için büyük veya küçük harfli karakterlerin kullanılıp kullanılmayacağını belirtir. Örneğin, "ABCDEF" oluşturmak 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çta elde edilen dizede istenen en az basamak sayısını gösterir. Gerekirse, sayı, duyarlık tanımlayıcısı tarafından verilen basamak sayısını üretmek için solunda sıfırlarla doldurulur.

için BigInteger, pozitif değerlerin negatif değerlerden ayırt etmek için her zaman bir baştaki sıfırı vardır. Bu, çıkış gidiş dönüşlerinin ayrıştırıldığında özgün değere döndürülmesini sağlar. Örneğin, biçim belirticisi ile dönüştürülen sayının F nedeni onaltılık sayının "X1" negatif değeri 0Ftemsil ediyor olmasıdırF.-1

Sonuç dizesi geçerli nesnenin biçimlendirme bilgilerinden NumberFormatInfo 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
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ı'ndaki Bölge ve Dil Seçenekleri öğesindeki ayarlar, biçimlendirme işlemi tarafından üretilen sonuç dizesini etkiler. Bu ayarlar, biçimlendirmeyi NumberFormatInfo idare etmek için kullanılan değerleri sağlayan geçerli kültürle ilişkili nesneyi başlatmak için kullanılır. Farklı ayarlar kullanan bilgisayarlar farklı sonuç dizeleri oluşturur.

Ayrıca, oluşturucu geçerli sistem kültürüyle aynı kültürü temsil eden yeni CultureInfo(String) bir nesnenin örneğini oluşturmak için kullanılırsaCultureInfo, Denetim Masası'ndaki 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(String, Boolean) nesne oluşturmak için oluşturucuyu kullanabilirsinizCultureInfo.

NumberFormatInfo özellikleri

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

Uyarı

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.

İntegral ve kayan nokta sayısal türleri

Standart sayısal biçim tanımlayıcılarının bazı açıklamaları tam sayı veya kayan nokta sayısal türlerine başvurur. Tam sayı türleri , , ByteSByte, , Int16, Int32, , Int64UInt16, UInt32ve UInt64'dırBigInteger. Kayan nokta sayısal türleri , Decimal, Halfve Single'dırDouble.

Kayan nokta sonsuzlukları ve NaN

Biçim dizesinden bağımsız olarak, 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 PositiveInfinitySymbol nesne tarafından belirtilen ilgili NegativeInfinitySymbol, NaNSymbolveya NumberFormatInfo özelliğin değeridir.

Kod örneği

Aşağıdaki örnek, en-US kültürünü ve tüm standart sayısal biçim tanımlayıcılarını kullanarak bir tamsayıyı ve kayan noktalı sayısal değeri biçimlendirer. Bu örnekte iki belirli sayısal tür (Double ve Int32) kullanılır, ancak diğer sayısal temel türlerden herhangi biri (Byte, SByte, Int16, , Int32, Int64, UInt16, , UInt32UInt64, BigIntegerDecimalHalfve Single) için 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: {floating.ToString("C", ci)}");           // Displays "C: $10,761.94"
Console.WriteLine($"E: {floating.ToString("E03", ci)}");         // Displays "E: 1.076E+004"
Console.WriteLine($"F: {floating.ToString("F04", ci)}");         // Displays "F: 10761.9376"
Console.WriteLine($"G: {floating.ToString("G", ci)}");           // Displays "G: 10761.937554"
Console.WriteLine($"N: {floating.ToString("N03", ci)}");         // Displays "N: 10,761.938"
Console.WriteLine($"P: {(floating/10000).ToString("P02", ci)}"); // Displays "P: 107.62 %"
Console.WriteLine($"R: {floating.ToString("R", ci)}");           // Displays "R: 10761.937554"
Console.WriteLine();

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