Programlama Hassasiyet İpucu: Noktalı Sayı Kullanımı

Noktalı sayı kullanılırken özellikle eşitlik karşılaştırmalarında kurguladığımız senaryo gereği iki sayının birbirine eşit olma durumu için bir tolerans aralığı seçilmelidir. Aşağıda örnek bir senaryo üzerinde ne demek istediğimizi anlatmaya çalışalım.

Örneğin demir çelik endüstrisi için bir otomasyon geliştiriyorsunuz ve birim ağırlık olarak kg kullanıyorsunuz. Böyle bir senaryoda 5000 kg ve 5000,005 kg aslında birbirine eşit kabul edilebilir bir aralıktır. Ama programlamada 5000 kg içerisinde aradaki 5 gramlık farktan ötürü eşitlik şartı sağlanmamaktadır ve eşitlik durumunda çalışması gereken kodlar çalışmayacaktır. Bunun için direk if(sayi1 == sayi2) şeklinde bir karşılaştırma değil de aşağıdaki gibi bir tolerans payı ile karşılaştırma yapılmalıdır.

const double tolerans = 0.005;
double sayi1 = 5000;
double sayi2 = 5000.005;

if (Math.Abs(sayi2 - sayi2) <= tolerans)
{
    // eşitlik durumu için çalışacak kodlar
}

Kodumuzda if şartı içerisinde aradaki toleransı (+) ve (-) durumlarının ikisinde de sağlamak için aradaki farkın mutlak değerini alıp tolerans değerinden küçük veya eşit olup olmadığının sorguluyoruz.

image_pdfPDF'ye Aktarimage_printYazdır

Yorum Yapın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Translate »
%d blogcu bunu beğendi: