Skip to main content

AccessTr.neT


Yuvarlama Hakkında

Yuvarlama Hakkında

Çözüldü #1
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.
.zip Database831.zip (Dosya Boyutu: 17,34 KB | İndirme Sayısı: 11)
Cevapla
#2
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.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#3
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.
Cevapla
#4
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...
Cevapla
#5
inceleyip olumlu/olumsuz bildirimde bulununuz.
.rar ondalik_test.rar (Dosya Boyutu: 17,31 KB | İndirme Sayısı: 23)
Cevapla
#6
Tamamdır Ozan Bey,

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

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task