12-03-2008, 02:11
Hatalı sonuç üreten Round fonksiyonuna alternatif olarak geliştirdiğim RoundA fonksiyonunu paylaşmak istiyorum.
Nesne yerine değişken girdisi kullanılacaksa Variant ya da String olmalıdır.
Çünkü Double değişken tanımlandığında sayı anlamlı 16 digit haneye yuvarlandıktan fonksiyona girecektir.
Fonksiyon, Exceldeki YUVARLA fonksiyonu ile eşdeğer sonuçlar üretmektedir.
Nesne yerine değişken girdisi kullanılacaksa Variant ya da String olmalıdır.
Çünkü Double değişken tanımlandığında sayı anlamlı 16 digit haneye yuvarlandıktan fonksiyona girecektir.
Fonksiyon, Exceldeki YUVARLA fonksiyonu ile eşdeğer sonuçlar üretmektedir.
Kod:
Function RoundA(Sayi, Optional Basamak As Long)
Kat& = 10 ^ Abs(Basamak)
If Basamak >= 0 Then RoundA = CDbl(FormatNumber(Left(Sayi, 30), Basamak))
If Basamak < 0 Then RoundA = CDbl(RoundA(FormatNumber(Left(Sayi, 30) / Kat), 0) * Kat)
End Function

