ondalık (C# Reference)
decimal Anahtar sözcüğünü bir 128-bit veri türünü gösterir.Kayan nokta türü için karşılaştırıldığında decimal türünde daha fazla kesinlik ve daha küçük bir aralığı, mali ve parasal hesaplamaları için uygun hale getirir.Yaklaşık aralık ve duyarlık için decimal türü aşağıdaki tabloda gösterilmiştir.
Tür |
Yaklaşık aralık |
Precision |
.NET Framework türü |
---|---|---|---|
decimal |
(-7.9 x 1028 to 7.9 x 1028) / (100 to 28) |
28-29 anlamlı basamaklar |
Hazır bilgi
Kabul sayısal gerçek hazır bilgi istediğiniz decimal, sonek m veya m, örneğin kullanın:
decimal myMoney = 300.5m;
M soneki sayı kabul bir çift ve bir derleyici hatası oluşturur.
Dönüşümleri
Tamsayı türü örtülü olarak dönüştürülür decimal ve sonuç veren decimal.Bu nedenle değişken ondalık tamsayı soneki olmadıkça değişmez değer aşağıdaki gibi kullanarak başlatabilirsiniz:
decimal myMoney = 300;
Kayan nokta türü arasında örtülü dönüşüm olmadığından yoktur ve decimal yazın; Bu nedenle, bu iki tür arasında dönüştürmek için bir dönüştürme işlemi kullanılmalıdır.Örne?in:
decimal myMoney = 99.9m;
double x = (double)myMoney;
myMoney = (decimal)x;
Ayrıca karıştırmak decimal ve aynı ifadede integral sayısal türler.Ancak, karıştırma decimal ve kayan nokta türü bir dönüştürme olmadan bir derleme hatası neden olur.
Örtülü sayısal dönüştürme hakkında daha fazla bilgi için bkz: Kesin sayısal dönüştürme tablosu (C# Reference).
Kesin sayısal dönüştürme hakkında daha fazla bilgi için bkz: Kesin sayısal dönüştürme tablosu (C# Reference).
Ondalık çıkış biçimlendirme
Sonuçları kullanarak biçimlendirebilirsiniz String.Format yöntemini veya aracılığıyla Console.Write yöntemini çağırır, String.Format().Bu makalenin sonraki bölümlerinde İkinci örnekte gösterildiği gibi standart para birimi biçim dizesi "c" veya "c" kullanarak para birimi biçimi belirtildi.String.Format yöntemi hakkında daha fazla bilgi için, bkz. String.Format.
Örnek
Bu örnekte, bir decimal ve bir int aynı ifadede karıştırılır.Sonuç veren decimal türü.
Aşağıdaki örnek eklemeye çalışıyor bir derleyici hatasına neden oluyor çift ve decimal değişkenleri.
double dub = 9;
// The following line causes an error that reads "Operator '+' cannot be applied to
// operands of type 'double' and 'decimal'"
Console.WriteLine(dec + dub);
// You can fix the error by using explicit casting of either operand.
Console.WriteLine(dec + (decimal)dub);
Console.WriteLine((double)dec + dub);
Hata sonucu:
Operator '+' cannot be applied to operands of type 'double' and 'decimal'
public class TestDecimal
{
static void Main()
{
decimal d = 9.1m;
int y = 3;
Console.WriteLine(d + y); // Result converted to decimal
}
}
// Output: 12.1
Bu örnekte, çıktı para birimi biçim dizesi kullanılarak biçimlendirilir.Dikkat x $0.99 ondalık basamak aştığından yuvarlanır.Değişken y, en fazla tam sayıları temsil eden tam olarak doğru biçimde görüntülenir.
public class TestDecimalFormat
{
static void Main()
{
decimal x = 0.999m;
decimal y = 9999999999999999999999999999m;
Console.WriteLine("My amount = {0:C}", x);
Console.WriteLine("Your amount = {0:C}", y);
}
}
/* Output:
My amount = $1.00
Your amount = $9,999,999,999,999,999,999,999,999,999.00
*/
C# dil belirtimi
Daha fazla bilgi için bkz: C# dil belirtiminin. Dil belirtimi, C# sözdizimi ve kullanımı için nihai kaynaktır.
Ayrıca bkz.
Başvuru
Tam sayı türleri tablosu (C# Reference)
Yerleşik türleri tablosu (C# Reference)
Kesin sayısal dönüştürme tablosu (C# Reference)
Kesin sayısal dönüştürme tablosu (C# Reference)
Kavramlar
Standart sayısal biçim dizeleri