Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kayan noktalı sayısal türler gerçek sayıları temsil gösterir. Tüm kayan nokta sayısal türleri değer türleridir. Bunlar ayrıca basit türlerdir ve değişmez değerleri kullanarak bunları başlatabilirsiniz. Tüm kayan noktalı sayısal türler aritmetik, karşılaştırma ve eşitlik işleçlerini destekler.
C# dili başvuru belgesi, C# dilinin en son yayımlanan sürümünü gösterir. Ayrıca, yaklaşan dil sürümü için genel önizlemelerdeki özelliklere yönelik ilk belgeleri içerir.
Belgelerde ilk olarak dilin son üç sürümünde veya geçerli genel önizlemelerde sunulan tüm özellikler tanımlanır.
Tavsiye
Bir özelliğin C# dilinde ilk tanıtıldığı zamanları bulmak için C# dil sürümü geçmişi makalesine bakın.
Kayan nokta türlerinin özellikleri
C# aşağıdaki önceden tanımlanmış kayan nokta türlerini destekler:
| C# türü/anahtar sözcüğü | Yaklaşık aralık | Kesinlik | Boyut | .NET türü |
|---|---|---|---|---|
float |
±1,5 x 10−45 ile ±3,4 x 1038 | ~6-9 basamak | 4 bayt | System.Single |
double |
±5,0 × 10−324 ile ±1,7 × 10308 | Yaklaşık 15-17 basamak | 8 bayt | System.Double |
decimal |
±1,0 x 10-28 ±7,9228 x 1028 | 28-29 basamak | 16 bayt | System.Decimal |
Yukarıdaki tabloda, en soldaki sütundaki her C# türü anahtar sözcüğü, karşılık gelen .NET türü için bir diğer addır. Bunlar değiştirilebilir. Örneğin, aşağıdaki bildirimler aynı türdeki değişkenleri bildirir:
double a = 12.3;
System.Double b = 12.3;
Her kayan nokta türünün varsayılan değeri sıfırdır 0. Kayan nokta türlerinin her biri, bu türün MinValue en düşük ve en yüksek sonlu değerini sağlayan ve MaxValue sabitlerine sahiptir.
float ve double türleri, sayı olmayan ve sonsuz değerleri temsil eden sabitler de sağlar. Örneğin, double türü şu sabitleri sağlar: Double.NaN, Double.NegativeInfinityve Double.PositiveInfinity.
Gerekli decimal duyarlık derecesi ondalık noktasının sağındaki basamak sayısına göre belirlendiğinde tür uygundur. Bu tür sayılar finansal uygulamalarda, para birimi tutarları (örneğin, 1,00 TL), faiz oranları (örneğin, 2,625%) vb. için yaygın olarak kullanılır. Yalnızca bir ondalık basamak için kesin olan sayılar bile türe göre decimal daha doğru işlenir: örneğin, 0,1, tam olarak bir decimal örnek tarafından temsil edilebilirken, 0,1'i tam olarak temsil eden veya double örneği yokturfloat. Sayısal türlerdeki bu fark nedeniyle, veya double ondalık veri kullandığınızda float aritmetik hesaplamalarda beklenmeyen yuvarlama hataları oluşabilir. Performansı iyileştirmenin double doğruluğu sağlamaktan daha önemli olduğu durumlarda yerine kullanabilirsinizdecimal. Ancak en yoğun hesaplama gerektiren uygulamalar dışında performans farkları fark edilmez. Kaçınmanın decimal bir diğer olası nedeni de depolama gereksinimlerini en aza indirmektir. Örneğin , ML.NET kullanır float çünkü 4 bayt ile 16 bayt arasındaki fark çok büyük veri kümeleri için eklenir. Daha fazla bilgi için bkz. System.Decimal.
bir ifadedeki integral türleriyle float ve double türlerini karıştırabilirsiniz. Bu durumda, tam sayı türleri örtük olarak kayan nokta türlerinden birine dönüştürülür ve gerekirse, float türü örtük olarak öğesine doubledönüştürülür. İfade aşağıdaki gibi değerlendirilir:
- İfadede bir
doubletür varsa, ifade ilişkisel ve eşitlik karşılaştırmalarında veyaboololarak değerlendirilirdouble. - İfadede tür yoksa
double, ifade ilişkisel ve eşitlik karşılaştırmalarında veyaboololarak değerlendirilirfloat.
Ayrıca, bir ifadedeki decimal tam sayı türleriyle türünü de karıştırabilirsiniz. Bu durumda, tam sayı türleri örtük olarak türüne decimal dönüştürülür ve ifade, ilişkisel ve eşitlik karşılaştırmalarında veya decimal olarak değerlendirilirbool.
bir ifadedeki decimal ve double türleriyle float türünü karıştıramazsınız. Bu durumda, aritmetik, karşılaştırma veya eşitlik işlemleri gerçekleştirmek istiyorsanız, aşağıdaki örnekte gösterildiği gibi işlenenleri türünden veya türüne decimal açıkça dönüştürmeniz gerekir:
double a = 1.0;
decimal b = 2.1m;
Console.WriteLine(a + (double)b);
Console.WriteLine((decimal)a + b);
Kayan nokta değerini biçimlendirmek için standart sayısal biçim dizelerini veya özel sayısal biçim dizelerini kullanabilirsiniz.
Gerçek değişmez değerler
Gerçek değişmez değerdeki sonek, türünü belirler:
- Soneki olmayan veya veya
Dsoneki olanddeğişmez değer birdoubledeğeridir. - veya
Fsoneki olanfdeğişmez değer birfloatdeğeridir. - veya
Msoneki olanmdeğişmez değer birdecimaldeğeridir.
Aşağıdaki kod her türün bir örneğini gösterir:
double d = 3D;
d = 4d;
d = 3.934_001;
float f = 3_000.5F;
f = 5.4f;
decimal myMoney = 3_000.5m;
myMoney = 400.75M;
Yukarıdaki örnekte _'nin basamak ayırıcısı olarak kullanımı da görülmektedir. Basamak ayırıcısını her türlü sayı sabitiyle kullanabilirsiniz.
Aşağıdaki örnekte gösterildiği gibi, gerçek değişmez değerin üstel bir bölümünü belirten bilimsel gösterimi de kullanabilirsiniz:
double d = 0.42e2;
Console.WriteLine(d); // output 42
float f = 134.45E-2f;
Console.WriteLine(f); // output: 1.3445
decimal m = 1.5E6m;
Console.WriteLine(m); // output: 1500000
Dönüşümler
Kayan noktalı sayısal türler arasında yalnızca bir örtük dönüştürme vardır: from to floatdouble. Ancak, açık atamayı kullanarak herhangi bir kayan nokta türünü başka bir kayan nokta türüne dönüştürebilirsiniz. Daha fazla bilgi için bkz. Yerleşik sayısal dönüştürmeler.
C# dil belirtimi
Daha fazla bilgi için C# dil belirtimininaşağıdaki bölümlerine bakın: