Skip to main content

AccessTr.neT


Double Sayısında Mod İle Tam Sayıları Bulmak

Double Sayısında Mod İle Tam Sayıları Bulmak

Çözüldü #1
iyi günler

Dim i As Integer
Dim d As Double
   
For i = 0 To 100
   d = i * 0.75
   If (d Mod X) Then MsgBox "tamsayı"
Next
 bu kodda d tam sayı olduğunda mesaj vermesi için "X" yerine ne yazmalıyım
@benbendedeilem
Cevapla
#2
if int(d)=d şeklinde deneyin?
Cevapla
#3
5700 kayıt var güncellenirken progressbarda göstermek için

say = say + 1
deger = say * w / rst.RecordCount
yuzde = say * 100 / rst.RecordCount

If (Int(yuzde) = yuzde) Then
      Call RunProgressBar(Me.pb_item, deger)
      Me.pb_lbl.Caption = "Veriler Güncelleniyor... % " & Int(yuzde)
End If
sizin dediğiniz gibi yazdım ama hiç tam  sayı bulamadığı için if içine giremedi
nasıl bir mantık kurmam lazım

yani hem label üzerinde tam sayı göstereceğim
hemde progresbar titreyip durmasın diye sadece tam sayılarda 
Call RunProgressBar(Me.pb_item, deger
çalışacak

hiç tam sayı elde edemese bile progress bar bitene kadar sadece 100 kez güncellensin ve %1, %2.... diye göstersin
Son Düzenleme: 21/03/2020, 11:27, Düzenleyen: accessman.
Cevapla
#4
kodun mantığını söyleyeyim Int() sayıyı aşağı yuvarlar yani 2.999999999999999 bile olsa onu 2 yapar (2.9999999999999999 fazladan 9 eklediğimizde 3 yapıyor ) 0.75 in katları göz önüne alındığında sonucun doğru olması gerek. 2 defa denedim 1-100 bin arasını 2sinde de sonuç doğru çıktı
Cevapla
#5
ama if içine girmeli yani benim double sayım 36,568 iken bunu if içinde en az bir kez kullanmalı
yani 36 tam sayısı hiç olmasa bile
Cevapla
#6
sayın accessman ilk mesajınızdaki sorunun cevabı int()dir sorunuzu en baştan yanlış sormuşsanız yada açıklamanız eksikse yapabileceğim bir şey yok.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da