Merhaba arkadaşlar, bu makalemde sizlere Math classının içerisinde yer alan yuvarlama metotlarından bahsedeceğim.
Öncelikle bir Console Projesi oluşturalım ve projemize YuvarlamaMetodlari ismini verelim.
Double tipinden piSayisi isminde bir değişken tanımlayıp bu değişken üzerinden yuvarlama metodlarını inceleyelim.
Ceiling Metodu
İlk olarak Ceiling metodunu inceleyeceğiz. Math kütüphanesinin altında bulunan Ceiling metodu parametre olarak dışarıdan double ya da decimal değer alabilir.
Parametre olarak aldığı ifadenin virgülden sonraki kısmına bakmadan direkt olarak tamsayı bölümündeki değerin bir fazlasını alıp o sayıya yuvarlar. Ceiling kelime anlamı olarak tavan demektir. Dolayısıyla ondalıklı olarak verilmiş olan değeri yukarıya (tam kısmın bir üstüne) yuvarlayacaktır diye aklınızda tutabilirsiniz.
Floor Metodu
Yuvarlama metodlarından Floor() metodunu inceleyelim. Bu metod ceiling metodunun tersi olarak görev yapmaktadır.
Floor() metodu da ondalık kısmı dikkate almadan tam kısmın değerine yuvarlama işlemi yapacaktır. Eğer örneğimizi pisayisi üzerinden inceleyecek olursak;
Round Metodu
Son olarak Round() metodumuzu inceleyelim. Bu metot matematikte yuvarlama işlemiyle aynı işi yapmaktadır.
Ondalıklı sayının virgülden sonraki kısmının 5ten küçük olması durumunda sadece tam kısmı direkt alacaktır. Yani; aşağı yuvarlayacaktır. Eğer virgülden sonraki kısım 5 veya 5ten büyükse bu durumda tam kısmı yukarıya yuvarlayacaktır.
Round() metodunun farklı overload edilmiş halleri mevcuttur. Eğer tek parametre olarak değer alanı kullanırsak direkt virgülün hemen yanındaki ondalık değeri alacaktır.
Eğer yuvarlama işlemini virgülden sonraki başka bir haneye göre yapmak istiyorsak, burada yapmamız gereken Round(yuvarlanmakIstenenOndalıklıDeger, yuvarlamaYapilacakHaneninIndisNumarası)
Ondalıklı değerin yuvarlama işlemini virgülden sonraki hangi haneye göre yapacaksak onu belirtirsek yuvarlama işleminde o hane göz önüne alınarak işlem yapılır.
3.456 değeri için virgülün hemen sağındaki 4 değerine göre işlem yapmasını istiyorsak Round() metodunun ilk parametresi ondalıklı değişkenin adı, diğer parametresi ise virgülden sonraki hangi haneye göre işlem yapılacaksa onun indis numarası verilmelidir. Unutmamak gereken bir şey vardır ki bu dünyada (yazılım dünyası) indisler yani sıra numaraları 0’dan başlar.
Yukarıdaki kod örneğinde Round(pisayisi) metodu ile Round(pisayisi,0) aynı işlemi yapacaktır. Eğer tek parametre alan metodu kullanırsak default olarak Round(pisayisi,0) metodu ile aynı işi yapacaktır. Çalıştırdığımız zaman ekranda 3 sonucunu görürüz.
Aşağıdaki örnekte 3.436 sayısında virgülün sağ tarafındaki (ondalıklı bölümde yer alan) 3 değerine göre yuvarlama işlemi yapan kodu yazalım. 3 hane olarak 1. indiste yer aldığı için yuvarlama işleminin ona göre yapılmasını istediğimizi Round(pisayisi,1) bölümünde belirtiriz. Metod o değerden önceki ifadeyi (tam kısım dahil) ekrana gösterir.
Round() metodu ilk olarak hangi haneye göre işlem yaptığına bakar ve bu alandaki rakamın 5ten küçük olması durumunda kendinden önceki ifadeyi aynen ekrana yazdıracaktır.
Round() Metodu Algoritması:
1.Başla
2.Hangi haneye göre yuvarlama yapılıyorsa onu belirle.
3.Bu hanedeki değer 5ten küçükse o haneye kadar olan değeri baştan itibaren al.
4.Eğer bu hanedeki değer 5 veya 5ten büyükse kendinden bir önceki rakamın değeri bir artırılır ve yeni ifade en baştan yazılır.
Son olarak 3.436 değerinin 6 rakamına göre yuvarlanmasını isteyelim.
6 rakamı hane olarak 2 numaralı indiste yer alır. Metod içerisinde bunu belirtmek gerekecektir. Şimdi de bu 6 rakamının 5ten büyük bir değer olduğunu gördük. Böyle bir durumda 6nın hemen bir solundaki rakamın değeri bir artırılır ve değer matematikte olduğu gibi yukarıya yuvarlanır.
Bir sonraki makalemde görüşmek dileğiyle iyi çalışmalar. ☺
Round methodunun MidpointRounding overloaduna da değinebilirsin.
YanıtlaSil