Math.Round Fonksiyonu ile Sayı Yuvarlama!

Math sınıfına ait Round fonksiyonunun sayı yuvarlama işlemlerinde kullanıldığını hepimizi biliriz. Bu fonksiyonun çalışma mantığı zaman zaman sayı yuvarlama işlemlerinde hatalara sebep olabilmektedir. Yukarı yuvarlanacak sayının virgülden sonraki kısmının .5’e eşit olması durumunda hatalı sonuçlarla karşılaşabilirsiniz. Aşağıdaki örnekleri inceleyebilirsiniz.

Math.Round(1,5)   —Sonuç : 2

Math.Round(2.5) –Sonuç : 2

Yukarıdaki iki işlemin de sonucu 2’ye yuvarlanacaktır. Aslında beklenen durum ikinci satırdaki ifadenin 3’e yuvarlanmasıdır. Bu gibi durumlarda sayının .5 ve yukarısı için her durumda yukarı yuvarlanmasını istiyorsak aşağıdaki kullanım şeklini tercih etmemiz gerekir.

Math.Round((2.5,MidpointRounding.AwayFromZero)

Konuyla ilgili ayrıntılı bir makaleye aşağıdaki bağlantıdan ulaşabilirsiniz.

http://www.yazgelistir.com/makale/math-round-fonksiyonu-yuvarlama-mi-sorun-mu-