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:
ToStringTüm sayısal türdeki metodun bazı aşırı yüklemeleri. Örneğin, ve yöntemlerine bir sayısal biçim dizesi sağlayabilirsiniz Int32.ToString(String) Int32.ToString(String, IFormatProvider) .TryFormatTüm sayısal türlerin yöntemi (örneğin, Int32.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) ve) Single.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) .WriteVe sınıflarının bazı veWriteLineyöntemleri Console StreamWriter , yöntemi ve String.Format StringBuilder.AppendFormat yöntemi tarafından kullanılan .net bileşik biçimlendirme özelliği. Bileşik biçim özelliği, alan genişliğini belirtmek ve bir alandaki sayıları hizalamak için birden çok veri öğesinin dize gösterimini tek bir dizeye dahil etmenize olanak tanır. Daha fazla bilgi için bkz. Bileşik biçimlendirme.C# ve Visual Basic ile birleşik biçim dizelerine kıyasla basitleştirilmiş bir sözdizimi sağlayan dizeleri enterpolaştır .
İ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
TryFormatparametresi olan yöntemin aşırıToStringyüklemesiformatgeç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.46decimal value = 123.456m; Console.WriteLine(value.ToString("C2")); // Displays $123.46Dim value As Decimal = 123.456d Console.WriteLine(value.ToString("C2")) ' Displays $123.46, ve gibi
formatStringyö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
alignmentiç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.16decimal[] 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.16Dim 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
formatStringdizenin 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