Ciao a tutti,
devo dare ad un text una condizione, se il numero che contiene è pari fa questo, se è dispari fa questo, come faccio?
Ciao a tutti,
devo dare ad un text una condizione, se il numero che contiene è pari fa questo, se è dispari fa questo, come faccio?
Ciao, beh.. penso che la matematica di base la conoscerai...fatti la domanda, quando un numero è pari? Pensa a come faresti con carta e penna...e avrai la risposta alla tua domanda..![]()
Jupy
Si va be con la matematica ci sono molti modi, ma a me serviva un codice veloce che dice qui è pari qui è dispari.
fai numero mod 2 e vedi se il numero è pari
il mod restituisce il resto della divisione,se non c'è resto vuol dire che è paro.
...oppure si può verificare se il bit meno significativo è 0 (pari) o 1Originariamente inviato da cassano
fai numero mod 2 e vedi se il numero è pari
il mod restituisce il resto della divisione,se non c'è resto vuol dire che è paro.
Fai così:
Oppure così:codice:Private Sub Command1_Click() If Text1.Text And 1 Then MsgBox ("Dispari") Else MsgBox ("Pari") End Sub
codice:Private Sub Command1_Click() Dim intNumero As Double If Len(Text1.Text) > 0 Then intNumero = (Text1.Text) If intNumero Mod 2 = 0 And 1 Then MsgBox "Il numero è pari" Else MsgBox "Il numero è dispari" End If End If End Sub![]()
LM
I cast... le parentesi... la gestione degli errori...
Originariamente inviato da LMondi
Fai così:
Oppure così:codice:Private Sub Command1_Click() On Error Goto fine 'il cast potrebbe non funzionare correttamente If Len(Text1.Text) > 0 Then If CLng(Text1.Text) And 1 Then MsgBox "Dispari" Else MsgBox "Pari" End If Exit Sub fine: MsgBox "Il contenuto della casella di testo non è un numero." End Sub
codice:Private Sub Command1_Click() On Error Goto fine 'il cast potrebbe non funzionare correttamente Dim intNumero As Long ' non ha senso il modulo di un numero decimale... If Len(Text1.Text) > 0 Then intNumero = CLng(Text1.Text) If intNumero Mod 2 = 0 And 1 Then MsgBox "Il numero è pari" Else MsgBox "Il numero è dispari" End If End If Exit Sub fine: MsgBox "Il contenuto della casella di testo non è un numero." End Sub
Amaro C++, il gusto pieno dell'undefined behavior.
funziona tutto, grazie mille a tutti
non capisco
Mod 2 = 0 And 1 ,perchè and 1 ??
In effetti non ha molto senso... si può toglierlo senza problemi.
Amaro C++, il gusto pieno dell'undefined behavior.