Kako da vidim da li mi je neki broj (u stringu!) ceo broj? Meni na pamet pada jedino da potrazim . ili , u tom stringu? (koliko je ovo resenje dobro i da li uopste postoji neko drugo?)
Da li je broj ceo?
Zaključano
Zakačeno
Jedino sto mi pada na pamet je da broj zaokruzis s komandom
Code:
'Ovo ubacis u Sub
Select Case IsNumeric(Text1.Text) 'ovo provjerava da li je uopce broj!
Case True
If Text1.text=Round(text1.text,0) then 'ako je broj iz textboxa jednak njegovoj
msgbox "Broj je cio! 'zaokruzenoj vrijednosti onda...
else
msgbox "Broj nije cio!"
end if
Case Else
MsgBox "Nije broj!", vbOKOnly, "Greska!"
End Select
'Ovo ubacis u Sub
Select Case IsNumeric(Text1.Text) 'ovo provjerava da li je uopce broj!
Case True
If Text1.text=Round(text1.text,0) then 'ako je broj iz textboxa jednak njegovoj
msgbox "Broj je cio! 'zaokruzenoj vrijednosti onda...
else
msgbox "Broj nije cio!"
end if
Case Else
MsgBox "Nije broj!", vbOKOnly, "Greska!"
End Select
Potpis
[ :. n!t .: ]
Mozda je ipak laksi nacin:
Dim A as string
Dim B as integer
If Not isNumeric(A) then exit sub
B= CInt(A) * 2 / 2
if cInt(A)-B<>0 then
msgbox "Broj je ceo"
else
msgbox "Broj nije ceo"
end if
Dim A as string
Dim B as integer
If Not isNumeric(A) then exit sub
B= CInt(A) * 2 / 2
if cInt(A)-B<>0 then
msgbox "Broj je ceo"
else
msgbox "Broj nije ceo"
end if
hvala ljudi!
Ili malo optimizovano :):
Code:
Dim A as string
If Not isNumeric(A) Then Exit Sub
if cInt(A) = A then
MsgBox "Broj je ceo"
Else
MsgBox "Broj nije ceo"
End If
Dim A as string
If Not isNumeric(A) Then Exit Sub
if cInt(A) = A then
MsgBox "Broj je ceo"
Else
MsgBox "Broj nije ceo"
End If
Isto moze sa Int() umesto CInt(). Trebalo bi testirati koja je brza ;).
Ili mozda...
A ako ti je nebitno kakav je ukoliko vec nije ceo:
Dim A as string : If isNumeric(A) and cInt(A) = A Then MsgBox "Broj je ceo"
Ili mozda...
Code:
Dim A as string
If isNumeric(A) and cInt(A) = A Then
MsgBox "Broj je ceo"
Else
If isNumeric(A) Then MsgBox "Broj nije ceo"
End If
Dim A as string
If isNumeric(A) and cInt(A) = A Then
MsgBox "Broj je ceo"
Else
If isNumeric(A) Then MsgBox "Broj nije ceo"
End If
A ako ti je nebitno kakav je ukoliko vec nije ceo:
Dim A as string : If isNumeric(A) and cInt(A) = A Then MsgBox "Broj je ceo"
hmm, izgleda da je Int brza :o)
a uostalom meni je samo trebalo da vidim da li je broj deljiv sa 4...
ajd zdravo!
a uostalom meni je samo trebalo da vidim da li je broj deljiv sa 4...
ajd zdravo!
Citat:
a uostalom meni je samo trebalo da vidim da li je broj deljiv sa 4...
Pa što onda tako nisi pitao :)
Code:
Dim A As String
If Not IsNumeric(A) Then Exit Sub
If A Mod 4 = 0 Then Msgbox "Broj je deljiv sa 4"
Dim A As String
If Not IsNumeric(A) Then Exit Sub
If A Mod 4 = 0 Then Msgbox "Broj je deljiv sa 4"
Potpis
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
Sta je vama ljudi :).
Dim A As String : If IsNumeric(A) And (A Mod 4 = 0) Then Msgbox "Broj je deljiv sa 4."
P.S. Ako sam dosadan, kazite :)
Dim A As String : If IsNumeric(A) And (A Mod 4 = 0) Then Msgbox "Broj je deljiv sa 4."
P.S. Ako sam dosadan, kazite :)
nisi dosadan shadowed
uvek je bolje imati sto manje koda 
za sta uopste sluze ti operatori tipa MOD, XOR, AND, OR nisam nigde nasao objasnjenje toga (iskreno nisam ni trazio)?
za sta uopste sluze ti operatori tipa MOD, XOR, AND, OR nisam nigde nasao objasnjenje toga (iskreno nisam ni trazio)?
izmenjeno 1 put, poslednji put Shadowed 03.01.2005. u 01:54
Izmene poruke
- Shadowed03.01.2005. u 01:54zapis iz teksta poruke
Mod je ostatak pri deljenju a And, Or i Xor su logicke operacije.
Code:
True And True = True
True And False = False
False And True = False
False And False = False
True Or True = True
True Or False = True
False Or True = True
False Or False = False
True Xor True = False
True Xor False = True
False Xor True = True
False Xor False = False
True And True = True
True And False = False
False And True = False
False And False = False
True Or True = True
True Or False = True
False Or True = True
False Or False = False
True Xor True = False
True Xor False = True
False Xor True = True
False Xor False = False
div vraca celobrojni deo kolicnika (10 div 3 = 3)
mod vraca celobrojni ostatak (10 mod 3 = 1)
Za NOT, AND, OR, XOR, SHL & SHR najbolje konsultuj MSDN
mod vraca celobrojni ostatak (10 mod 3 = 1)
Za NOT, AND, OR, XOR, SHL & SHR najbolje konsultuj MSDN
SHL i SHR ??? u VBu??? Gde?
Potpis
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan
Brannigan
Citat:
krckoorascic: hmm, izgleda da je Int brza :o)
a uostalom meni je samo trebalo da vidim da li je broj deljiv sa 4...
ajd zdravo!
a uostalom meni je samo trebalo da vidim da li je broj deljiv sa 4...
ajd zdravo!
Treba obratiti paznju kod primene CInt funkcije na ovaj nacin; ukoliko string koji se konvertuje izlazi van opsega Integer dobice se overflow greska npr.
Code:
Debug.Print CInt("123456789") 'Greska
Debug.Print CInt("123456789") 'Greska
pa je u ovim slucajevima bolje koristiti Int funkciju, u sprezi sa IsNumeric, npr.
Code:
Dim A As String
Dim B As Integer
A = "123456789"
B = IIF(IsNumeric(A), Int(A), 0)
If CStr(B) = A Then
If B >= -32768 And B <= 32768 Then
MsgBox "Broj je ceo"
Else
MsgBox "Broj je van celobrojnog opsega"
End If
Else
MsgBox "Broj nije odgovarajuci"
End If
Dim A As String
Dim B As Integer
A = "123456789"
B = IIF(IsNumeric(A), Int(A), 0)
If CStr(B) = A Then
If B >= -32768 And B <= 32768 Then
MsgBox "Broj je ceo"
Else
MsgBox "Broj je van celobrojnog opsega"
End If
Else
MsgBox "Broj nije odgovarajuci"
End If