Yuvarlama

17/03/2011, 14:14

mk70

Merhabalar,

Sitede yuvarlama ile ilgili birçok konu başlığı açılmış, inceledim.
Fakat ekteki örnekte olduğu gibi;
Round(7,965;2)=7,96 çıkıyor ; 7,97 olması gerekiyor
Round(87,615;2)=87,62 çıkıyor ; bu sayıda sorun yok.

Formülü aşağıdaki şekilde değiştirerek denedim sorunu çözdüm, Ancak acaba bunun daha kolay bir yolu veya formülü var mıdır?
Round(7,965+0,055;2)-0,05=7,97
Round kodu neden bazı sayılarda yukarı yuvarlama yapıyor da bazılarında yapmıyor, anlayamadım...
(Virgülden sonraki 2. rakamın tek veya çift olması ile ilgili olabilir mi... ? Bilemedim.)
Yardımcı olursanız sevinirim.

17/03/2011, 14:35

Hayri16

Sayın mk70;
Çok ilginç bir durum doğrusu. Ben de denedim. Çok haklsınız. Virgülden sonraki 2. rakam eğer tek sayı ise, ondan sonra gelen rakam 5 ve yukarısında bir üst rakama tamamlıyor. Ama çift sayı ise , ondan sonra gelen rakam 5 ise bu sefer üst rakama tamamlamıyor. Formülünüz işlevsel ve şu anda benim bildiğim kadarıyla başka bir çözüm yok. Ama ustalar geliştirebilirler. Kolay gelsin.
17/03/2011, 20:05

mk70

İlginiz için teşekkür ederim Sayın Hayri16. Bu hesaplamalar okulumuzda çalışan hizmetlinin sigorta kesintileri ile ilgili. Bildiğiniz gibi SGK işlemlerinde 1 kuruşun bile hesabı çok önemli...
23/03/2011, 07:58

ozanakkaya

Hesaplamalardaki hata daha önce tartışılmıştı.

=Round((32.065);2) kodu accesste 32.06 , aynı kod excelde 32.07 olarak yuvarlanıyor.

Accesste son rakam 5 ise, 5 ten önceki rakamın tek-çift durumuna göre yuvarlıyor.

Mesela
Round (12.55, 1) = 12.6
Round (12.65, 1) = 12.6
Round (12.75, 1) = 12.8

Eğer son rakam 5 ise ve siz önceki rakama bakmazsızın yukarı yuvarlamak istiyorsanız ona göre kod yazılabilir. Ama accessin normal işleyişi üstte anlattığım şekilde. Tekse yukarı, çiftse aynı.
26/03/2011, 12:57

mk70

Teşekkür ederim sayın sledgab,

Sorunu
Round(7,965+0,055;2)-0,05=7,97
şeklinde çözdüm...