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 bir sayısal biçim dizesi formu alır [format specifier][precision specifier] , burada:

  • Biçim belirleyicisi , sayı biçimi 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 belirleyicisi , sonuçta elde edilen dizedeki basamak sayısını etkileyen isteğe bağlı bir tamsayıdır. .NET 6 ve sonraki sürümlerinde, en büyük duyarlık değeri Int32.MaxValue . Önceki .NET sürümlerinde duyarlık, 0 ile 99 arasında değişebilir. Duyarlık belirticisi bir sayının dize gösterimindeki basamak sayısını denetler. Sayının kendisini yuvarlamaz. Bir yuvarlama işlemi gerçekleştirmek için, Math.Ceiling Math.Floor veya Math.Round yöntemini kullanın.

    Duyarlık belirtici , sonuç dizesindeki kesirli basamakların sayısını denetliyorsa, sonuç dizesi sonsuz kesin sonuca en yakın bir gösterilebilir tablo sonucuna yuvarlanmış bir sayıyı yansıtır. Eşit olarak yaklaşık iki doğru gösterilebilir tablo sonucu varsa:

    • .net core 2,0 ' ye kadar .NET Framework ve .net core 'da, çalışma zamanı, en az önemli basamakla (yani, kullanılarak) sonucu seçer MidpointRounding.AwayFromZero .
    • .NET Core 2,1 ve üzeri sürümlerde, çalışma zamanı, en az önemli bir basamakla (yani, kullanılarak) sonucu seçer MidpointRounding.ToEven .

    Not

    Duyarlık belirtici, sonuç dizesindeki basamakların sayısını belirler. Bir sonuç dizesini başında veya sonunda boşluklarla doldurma için, 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ı destekler:

İpucu

sayısal veya tarih ve saat değerlerine biçim dizeleri uygulamanızı sağlayan 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 Basiciçin kullanılabilir.

Standart biçim belirticileri

Aşağıdaki tabloda standart sayısal biçim belirticileri açıklanmakta ve her biçim belirticisi 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 kullanımlarının kapsamlı bir gösterimi için kod örnek bölümüne bakın.

Belirli bir kültür için biçimlendirilen bir dizenin sonucu aşağıdaki örneklerden farklı olabilirler. İş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 itibaren .NET, kültürel biçimlerini platformlar arasında birleştirmenize çalışır. Daha fazla bilgi için bkz. .NET Genelleştirme ve ıCU.

Biçim belirteci Ad Açıklama Örnekler
"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 belirticisi: tarafından tanımlanır NumberFormatInfo.CurrencyDecimalDigits .

Daha fazla bilgi: para birimi ("C") Biçim belirleyicisi.
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 belirleyicisi.
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 belirleyicisi.
1052,0329112756 ("E", en-US)
-> 052033E E + 003

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

-1052,0329112756 ("E2", en-US)
->-1,05 e + 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 belirticisi: tarafından tanımlanır NumberFormatInfo.NumberDecimalDigits .

Daha fazla bilgi: Fixed-Point ("F") Biçim belirleyicisi.
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" ya da "g" Genel Sonuç: Sabit nokta veya bilimsel bir notanın daha küçük olması.

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 Belirleyicisi.
-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" 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 belirleyicisi: tarafından NumberFormatInfo.NumberDecimalDigits tanımlanır.

Daha fazla bilgi: Sayısal ("N") Biçim Belirleyicisi.
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" 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 belirleyicisi: tarafından NumberFormatInfo.PercentDecimalDigits tanımlanır.

Daha fazla bilgi: Yüzde ("P") Biçim Belirleyicisi.
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 desteklenen: Single , Double ve BigInteger .

Not: Yalnızca tür BigInteger için önerilir. Türler Double için "G17" kullanın; Single türler için "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: HexaDecimal ("X") Biçim Belirleyicisi.
255 ("X")
-> FF

-1 ("x")
-> ff

255 ("x4")
-> 00ff

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

Standart sayısal biçim dizelerini kullanma

Not

Bu makaledeki C# örnekleri TRY.net satır içi kod Çalıştırıcısı ve PLAYIN içinde çalışır. Etkileşimli bir pencerede örnek çalıştırmak için Çalıştır düğmesini seçin. Kodu yürüttüğünüzde, bunu değiştirebilir ve yeniden Çalıştır ' ı seçerek 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# Derleyici hata iletileri görüntülenir.

Bir sayısal değerin biçimlendirmesini tanımlamak için aşağıdaki yöntemlerden birini kullanarak standart sayısal biçim dizesi kullanılabilir:

  • Yöntemine veya TryFormat parametresi olan yöntemin aşırı ToString yüklemesi format geçirebilirsiniz. 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çimler.

    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 gibi formatString yöntemlerle kullanılan bir biçim öğesinde bağımsız değişken olarak String.Format Console.WriteLine StringBuilder.AppendFormat sağlanmalıdır. 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 hizalı mı olduğunu belirtmek alignment için bir bağımsız değişken silebilir. Aşağıdaki örnek, 28 karakterlik bir alanda bir para birimi değerini sola hizalar ve 14 karakterlik bir alanda 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 formatString dizenin irdelenmiş ifade öğesinde bağımsız değişken olarak sağlanmalıdır. Daha fazla bilgi için C# başvurusunda Yer alan Dize ilişkilendirme makalesine veya I İtirilmiş dizeler makalesine Visual Basic bakın.

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

Para birimi biçim belirleyicisi (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 belirticisi atlanırsa, varsayılan duyarlık özelliği tarafından tanımlanır NumberFormatInfo.CurrencyDecimalDigits .

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 bilgileri tarafından etkilenir NumberFormatInfo . Aşağıdaki tabloda NumberFormatInfo döndürülen dizenin biçimlendirmesini denetleyen özellikler listelenmiştir.

NumberFormatInfo özellikleri Description
CurrencyPositivePattern Pozitif değerler için para birimi sembolünün yerleşimini tanımlar.
CurrencyNegativePattern Negatif değerler için para birimi sembolünün yerleşimini tanımlar ve eksi işaretinin parantezle mi yoksa özelliği ile mi temsil edileceğini belirtir NegativeSign .
NegativeSign Parantezlerin kullanılmadığını gösteriyorsa, kullanılan negatif işareti tanımlar CurrencyNegativePattern .
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 Double para birimi biçim belirticisiyle bir değeri biçimlendirir:

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 Belirleyicisi (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 bilgileri tarafından etkilenir NumberFormatInfo . Aşağıdaki tabloda gösterildiği gibi tek bir özellik, sonuç dizesinin biçimlendirmesini etkiler.

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

Aşağıdaki örnek, bir Int32 değeri ondalık biçim belirleyicisi ile biçimlendirir.

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 Belirleyicisi (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 bilgileri tarafından etkilenir NumberFormatInfo . Aşağıdaki tabloda NumberFormatInfo döndürülen dizenin biçimlendirmesini denetleyen özellikler listelenmiştir.

NumberFormatInfo özellikleri Description
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 belirleyicisi ile biçimlendirir:

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 noktalı Biçim Belirleyicisi (F)

Sabit nokta ("F") Biçim belirleyicisi bir sayıyı "-ddd. 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.

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

Sonuç dizesi geçerli nesnenin biçimlendirme bilgileri tarafından etkilenir NumberFormatInfo . Aşağıdaki tabloda, NumberFormatInfo sonuç dizesinin biçimlendirmesini denetleyen nesnenin özellikleri listelenmektedir.

NumberFormatInfo özellikleri Description
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 noktalı Biçim belirleyicisi ile biçimlendirir:

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 Belirleyicisi (G)

Genel ("G") Biçim Belirleyicisi, sayının türüne ve bir duyarlık belirticisinin var olup olmadığına bağlı olarak, sayıyı sabit noktalı veya bilimsel gösterimden daha küçük bir değere 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 3 basamak
Single 7 basamak
Double 15 basamak
Decimal 29 basamak

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 ise Decimal ve duyarlık belirtici atlanırsa, sabit noktalı gösterim 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 belirleyicisi orijinal Double değerin başarılı bir şekilde gidiş dönüşmesini sağlar. Bunun nedeni, Double en fazla 17 anlamlı basamak sağlayan BIR ıeee 754-2008 uyumlu çift duyarlıklı ( binary64 ) kayan noktalı sayıdır. .NET Framework, "r " biçim belirleyicisiyerine kullanılmasını öneririz, çünkü bazı durumlarda "r", çift duyarlıklı kayan nokta değerlerini başarıyla geri dönmez.

Bir Single değerle kullanıldığında, "G9" Biçim belirleyicisi orijinal Single değerin başarılı bir şekilde gidiş dönüşmesini sağlar. Bunun nedeni, Single en fazla dokuz önemli basamak sağlayan BIR ıeee 754-2008 uyumlu tek duyarlıklı ( binary32 ) bir kayan noktalı sayıdır. Performans nedenleriyle, "R" Biçim belirleyicisiyerine kullanılmasını öneririz.

Sonuç dizesi geçerli nesnenin biçimlendirme bilgileri tarafından etkilenir NumberFormatInfo . Aşağıdaki tabloda, NumberFormatInfo sonuç dizesinin biçimlendirmesini denetleyen özellikler listelenmiştir.

NumberFormatInfo özellikleri Description
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, kayan nokta değerlerini genel biçim belirticisi ile biçimlendirir:

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 Belirleyicisi (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 belirticisi atlanırsa, ondalık basamak sayısı geçerli özellik tarafından tanımlanır NumberFormatInfo.NumberDecimalDigits .

Sonuç dizesi geçerli nesnenin biçimlendirme bilgileri tarafından etkilenir NumberFormatInfo . Aşağıdaki tabloda, NumberFormatInfo sonuç dizesinin biçimlendirmesini denetleyen özellikler listelenmiştir.

NumberFormatInfo özellikleri Description
NegativeSign Bir sayının negatif olduğunu belirten dizeyi tanımlar.
NumberNegativePattern Negatif değerlerin biçimini tanımlar ve eksi işaretinin parantezle mi yoksa özelliği ile mi temsil edileceğini belirtir NegativeSign .
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, belirtilen kayan nokta değerlerini sayı Biçim belirleyicisi ile biçimlendirir:

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çim Belirleyicisi (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 belirticisi atlanırsa, geçerli özelliği tarafından sağlanan varsayılan sayısal duyarlık PercentDecimalDigits kullanılır.

Aşağıdaki tabloda NumberFormatInfo döndürülen dizenin biçimlendirmesini denetleyen özellikler listelenmiştir.

NumberFormatInfo özellikleri Description
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çim belirleyicisi ile biçimlendirir:

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çim Belirleyicisi (R)

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

DoubleDeğerler için, bazı durumlarda "R" Biçim belirleyicisi özgün değeri başarıyla geri dönmez. Hem hem Double de Single değerleri için de nispeten düşük performans sağlar. Bunun yerine, değerler için "G17" biçim belirticisini Double ve "G9" biçim belirticisini başarıyla gidiş dönüş değerlerini kullanmanızı öneririz Single .

Bir BigInteger değer bu tanımlayıcı kullanılarak biçimlendirilirken, dize temsili değerindeki tüm önemli rakamları içerir BigInteger .

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 bilgileri tarafından etkilenir NumberFormatInfo . Aşağıdaki tabloda, NumberFormatInfo sonuç dizesinin biçimlendirmesini denetleyen özellikler listelenmiştir.

NumberFormatInfo özellikleri Description
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 belirleyicisi ile biçimlendirir.

#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çimlendirilen değerler, veya anahtarları kullanılarak derlenirse /platform:x64 /platform:anycpu ve 64 bitlik sistemlerde çalıştırıldığında, başarılı bir şekilde gidiş dönüş değildir. Daha fazla bilgi için aşağıdaki paragrafa bakın.

Double"R" standart sayısal biçim dizesiyle biçimlendirilen değer sorununa geçici bir çözüm bulmak için, veya anahtarlar kullanılarak derlenirse /platform:x64 /platform:anycpu ve 64 bitlik sistemlerde çalıştırırsanız, değerleri başarıyla yuvarlamaz. Double "G17" standart sayısal biçim dizesini kullanarak değerleri biçimlendirebilirsiniz. Aşağıdaki örnek, başarılı bir şekilde gidiş dönüş olmayan bir değerle "R" biçim dizesini Double ve ayrıca özgün değeri başarıyla yuvarlamak 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 Belirleyicisi (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 nesnenin biçimlendirme bilgisi tarafından etkilenmemektedir NumberFormatInfo .

Aşağıdaki örnek Int32 değerleri onaltılık biçim belirleyicisi ile biçimlendirir.

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ı 'ndaki bölge ve dil seçenekleri öğesindeki ayarlar, bir biçimlendirme işlemi tarafından üretilen sonuç dizesini etkiler. Bu ayarlar NumberFormatInfo , biçimlendirmeyi yönetmek için kullanılan değerleri sağlayan geçerli kültür ile ilişkili nesneyi başlatmak için kullanılır. Farklı ayarları kullanan bilgisayarlar farklı sonuç dizeleri üretir.

Ayrıca, CultureInfo(String) Oluşturucu CultureInfo geçerli sistem kültürüyle aynı kültürü temsil eden yeni bir nesne oluşturmak için kullanılıyorsa, Denetim Masası 'ndaki bölge ve dil seçenekleri öğesi tarafından belirlenen tüm özelleştirmeler yeni CultureInfo nesneye uygulanır. CultureInfo(String, Boolean)Oluşturucuyu, CultureInfo sistemin özelleştirmelerini yansıtmayan bir nesne oluşturmak için kullanabilirsiniz.

NumberFormatInfo özellikleri

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

Not

Sayısal değerleri biçimlendirmede kullanılan desenleri veya dizeleri özelleştirme hakkında bilgi için, bkz NumberFormatInfo . sınıf konusu.

Integral 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. İntegral sayısal türleri,,,,, Byte SByte ,, Int16 Int32 Int64 UInt16 UInt32 UInt64 ve BigInteger . Kayan nokta sayısal türleri,,, Decimal Half Single ve Double .

Kayan nokta sonsuz ve NaN

Biçim dizesinden bağımsız olarak, bir Half ,, Single veya Double kayan nokta türünün değeri pozitif sonsuzluk, negatif sonsuz veya sayı değil (NaN), biçimlendirilen dize, PositiveInfinitySymbol geçerli geçerli NegativeInfinitySymbol NaNSymbol nesne tarafından belirtilen ilgili, veya özelliğin değeridir NumberFormatInfo .

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 örnek iki özel sayısal türü ( Double ve Int32 ) kullanır, ancak diğer sayısal temel türlerden ( Byte ,,,,,,, SByte Int16 ,,,, Int32 Int64 UInt16 UInt32 UInt64 BigInteger Decimal Half ve Single ) herhangi biri 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: {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.