30 Temmuz 2012 Pazartesi

C# Decimal’in Float ve Double’dan Farkı


Bu yazımda sizlere decimal’in float ve double’dan farklarını anlatacağım. Float ve double kayan binary point tipindedirler (floating binary point types). Yani başka bir deyişle şu şekilde bir sayıyı temsil ederler:
10010.01101101001
Binary sayı ve binary point’in yeri değerin içinde şifrelenmiştir.
Decimal’de kayan decimal point tipindedir ve şu şekilde bir sayıyı temsil eder:
12345.6789
Aynı şekilde sayı ve decimal point’in yeri değerin içinde şifrelenmiştir. İşte bu yüzden decimal’de sabit bir değer yerine hala kayan bir değerdir.
Dikkatimizi çekmesi gereken bir nokta olarak, insanlar integer olmayan sayıları decimal formlarda gösterirler ve bu decimal gösterimlerde kesin bir sonuç bulmak isterler. Bütün decimal değerler kayan binary point tipinde gösterilemezler. Bu yüzden eğer kayan binary point tipi kullanıyorsak istedğimiz sonuca yaklaşık değerler elde ederiz. Bazen kayan decimal point tipi kullanıyorkende kesin bir sonuç elde edemeyebiliriz. Mesela 1′in 3′e bölümü bize yine yaklaşık bir değer verecektir. Bu yüzden ne zaman neyi kullanacağımızı bilmek önemlidir:
-Kesin değerler elde etmek istediğimizde decimal kullanmamız gerekmektedir. Bunun en güzel örneklerinden biri finanstır. Finansal hesaplamalar yaparken en ufak bir sayının dahi önemi büyüktür. Bu yüzden kesin sonuçlar elde etmek isteriz ve decimal kullanmamız gerekektedir.
-Doğa ile ilgili olaylar zaten kesin olarak ölçülemedikleri için decimal yerine float yada double kullanmamız daha yerinde olacaktır. Yani bilimsel verileri bu tiplerde tutabiliriz. Son olarakta bilmemizde fayda var: kayan binary point tiplerinin yani float ve double’ın çalışma hızları decimal’den daha fazladır.http://emrahserveryildiz.wordpress.com/2012/04/03/c-decimalin-float-ve-doubledan-farki/

Hiç yorum yok:

Yorum Gönder