AccessTr.neT
Yuvarlama Hakkında - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Yuvarlama Hakkında (/konu-yuvarlama-hakkinda--81408.html)

Sayfalar: 1 2


Yuvarlama Hakkında - notrino - 04/03/2016

Merhabalar,

Ekli örneğimde ondalıklı bir sayının tamsayıya yuvarlanması ile ilgili bir çalışma var. Örneğin sayımız 0,5 olduğunda bunu 0 olarak çeviriyor, 0,6 olduğunda 1 yapıyor. Esasen matematikte 0,5 te dahil olmak üzere bu ve bunun üzerindeki sayıları bir üste yuvarlamalı. Yani;

0,4 = 0
0,5 = 1
0,6 = 1
.
.
.
gibi. Ama dikkat ederseniz sistem bir tuhaf çalışıyor, bazı değerlerde (örneğin 1,5 girdiğimde bunu 2 yapıyor ama 108,5 girdiğimde 109 yapmıyor.)
Benim istediğim şey, matematiksel olarak olması gerekendir. Yani "nokta 5" ve üzeri her değer, girilen sayıyı bir üste yuvarlamalıdır.

Tşk.


Cvp: Yuvarlama Hakkında - atoz112 - 04/03/2016

sayın notrino,

bahsettiğiniz talebinize yönelik olarak;
site arama sayfasında "yuvarlama" veya "round" ifadelerini yazmak sureti ile çeşitli içeriklerdeki konularda yer alan bilgileri ve örnekleri inceleyebilirsiniz.

aşağıda bunlardan biri yer almaktadır.

sorguda format kullanımı

bilginize...iyi çalışmalar,saygılar.


Cvp: Yuvarlama Hakkında - ozanakkaya - 04/03/2016

Modüle aşağıdaki kodu kaydet

Public Function Round(ByVal Number As Variant, NumDigits As Long, Optional UseBankersRounding As Boolean = False) As Double

  Dim dblPower As Double
  Dim varTemp As Variant
  Dim intSgn As Integer

  If Not IsNumeric(Number) Then

    Err.Raise 5
  End If
  dblPower = 10 ^ NumDigits

  intSgn = Sgn(Number)
  Number = Abs(Number)

  varTemp = CDec(Number) * dblPower + 0.5

  If UseBankersRounding Then
    If Int(varTemp) = varTemp Then
      If varTemp Mod 2 = 1 Then
        varTemp = varTemp - 1
      End If
    End If
  End If
  Round = intSgn * Int(varTemp) / dblPower
End Function

Hesaplanmış alanda ifadeye

round([sayı];0)
yaz.

Tablodaki hesaplanmış alan olayında bence uzak dur.


Cvp: Yuvarlama Hakkında - notrino - 04/03/2016

Merhaba Ozan Bey,

Açıkçası bu çalışmadı. Ama aslında benim talebim de biraz şekil değiştirdi. Şöyleki, talebim sadece exceldeki gibi bir yukarı yuvarlama işlemidir. Yani girilen sayı 12 olduğunda cevap 12 olmalı, girilen sayı 12,1 - 12,2 - 12,3 .... 12,9 olduğunda cevap 13 olmalıdır. Aynen exceldeki gibi..Bu nasıl olacak Accesste? round[sayı,0] fonksiyonu bu işe yaramıyor...


Cvp: Yuvarlama Hakkında - ozanakkaya - 04/03/2016

inceleyip olumlu/olumsuz bildirimde bulununuz.


Cvp: Yuvarlama Hakkında - notrino - 07/03/2016

Tamamdır Ozan Bey,

Aradığım buydu. Teşekkürler..