[ Aleksandar Ružičić @ 30.12.2004. 17:20 ] @
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?)
[ Pr[o_O]F @ 30.12.2004. 18:44 ] @
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

[ kiky @ 31.12.2004. 20:58 ] @
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
[ Aleksandar Ružičić @ 01.01.2005. 21:58 ] @
hvala ljudi!
[ Shadowed @ 01.01.2005. 23:49 ] @
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
[ Aleksandar Ružičić @ 02.01.2005. 00:25 ] @



kako se toga nisam setio???

hvala shadowed!
[ Shadowed @ 02.01.2005. 00:33 ] @
Isto moze sa Int() umesto CInt(). Trebalo bi testirati koja je brza ;).
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


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"
[ Aleksandar Ružičić @ 02.01.2005. 15:41 ] @
hmm, izgleda da je Int brza :o)
a uostalom meni je samo trebalo da vidim da li je broj deljiv sa 4...

ajd zdravo!
[ Marko_L @ 02.01.2005. 16:40 ] @
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"
[ Shadowed @ 02.01.2005. 19:08 ] @
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 :)
[ Aleksandar Ružičić @ 02.01.2005. 23:36 ] @
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)?
[ Shadowed @ 03.01.2005. 00:18 ] @
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


[Ovu poruku je menjao Shadowed dana 03.01.2005. u 01:54 GMT+1]
[ reiser @ 03.01.2005. 00:18 ] @
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
[ Dark Icarus @ 07.01.2005. 17:52 ] @
SHL i SHR ??? u VBu??? Gde?
[ goranvuc @ 13.08.2006. 17:51 ] @
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!


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

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