Onluk Veri Türü (Visual Basic)
, 10 ' un bir değişken gücüne göre ölçeklendirilmiş 96 bit (12 baytlık) tamsayı sayılarını temsil eden imzalı 128 bitlik (16 baytlık) değerleri barındırır. Ölçeklendirme faktörü, ondalık noktanın sağ tarafındaki basamak sayısını belirtir; 0 ile 28 arasında değişir. 0 ölçeğinde (ondalık basamak yok), olası en büyük değer +/-79228162514264337593543950335 (+/-7.9228162514264337593543950335E + 28) olur. 28 ondalık basamakla, en büyük değer +/-7.9228162514264337593543950335 ve sıfır olmayan en küçük değer +/-0,0000000000000000000000000001 (+/-1E-28) olur.
Açıklamalar
DecimalVeri türü, bir sayı için en fazla sayıda önemli basamak sağlar. 29 ' dan fazla önemli basamağı destekler ve 7,9228 x 10 ^ 28 değerinden fazla değeri temsil edebilir. Çok sayıda basamak gerektiren, ancak yuvarlama hatalarını kabul edemeyecek finansal gibi hesaplamalar için özellikle uygundur.
Varsayılan değeri 0 ' Decimal dır.
Programlama İpuçları
Duyarlılık.
Decimalkayan nokta veri türü değil.DecimalYapı bir ikili tamsayı değerini, bir işaret biti ve değerin hangi kısmının ondalık kesir olduğunu belirten bir tamsayı ölçekleme faktörüyle birlikte tutar. Bu nedenle,Decimalsayıların, kayan nokta türlerinden (ve) daha kesin bir temsili vardırSingleDouble.Mının.
DecimalVeri türü, tüm sayısal türlerin en yavaş türüdür. Veri türü seçmeden önce, performans için duyarlık önem derecesine sahip olmanız gerekir.Kan.
DecimalVeya için widens veri türüSingleDouble. Bu,Decimalbir hatayla karşılaşmadan bu türlerden birine dönüştürebileceğiniz anlamına gelir System.OverflowException .Sondaki sıfırlar. Visual Basic sondaki sıfırları bir sabit değer içinde depolamaz
Decimal. Ancak, birDecimaldeğişken sondaki tüm sıfırları elde edilen hesaplama sırasında korur. Aşağıdaki örnek bunu göstermektedir.Dim d1, d2, d3, d4 As Decimal d1 = 2.375D d2 = 1.625D d3 = d1 + d2 d4 = 4.000D MsgBox("d1 = " & CStr(d1) & ", d2 = " & CStr(d2) & ", d3 = " & CStr(d3) & ", d4 = " & CStr(d4))MsgBoxÖnceki örnekteki çıktısı aşağıdaki gibidir:d1 = 2.375, d2 = 1.625, d3 = 4.000, d4 = 4Tür karakterleri. Değişmez değer türü karakterini
Dbir sabit değere eklemek,Decimalveri türüne zorlar. Tanımlayıcı türü karakteri@herhangi bir tanımlayıcıya eklemek bunu öğesine zorlarDecimal.Çerçeve türü. .NET Framework karşılık gelen tür System.Decimal yapısıdır.
Aralık
DBir Decimal değişkene veya sabitine büyük bir değer atamak için tür karakterini kullanmanız gerekebilir. Bu gereksinim, derleyicinin bir sabit değer türü karakteri değişmez değer olarak değişmez ve Long Aşağıdaki örnekte gösterildiği gibi değişmez.
Dim bigDec1 As Decimal = 9223372036854775807 ' No overflow.
Dim bigDec2 As Decimal = 9223372036854775808 ' Overflow.
Dim bigDec3 As Decimal = 9223372036854775808D ' No overflow.
bigDec1Öğesine atanan değer için aralığında yer aldığından, için bildirimi bir taşma oluşturmaz Long . LongDeğer Decimal değişkene atanabilir.
bigDec2Öğesine atanan değer için çok büyük olduğundan, için bildirimi bir taşma hatası oluşturur Long . Sayısal sabit değer önce bir olarak yorumlanamadığından Long Decimal değişkenine atanamaz.
İçin bigDec3 , değişmez değer türü karakteri, D derleyicinin sabit Decimal değerini a yerine bir olarak yorumlamasını zorlayarak sorunu çözer Long .