18/06/09 10:42
Alceus
Devi sfruttare l'operatore Mod, che permette di effettuare una divisione tra interi...
aaa
18/06/09 14:43
io90
Postato originariamente da Alceus:
Devi sfruttare l'operatore Mod, che permette di effettuare una divisione tra interi...
Devi sfruttare l'operatore Mod, che permette di effettuare una divisione tra interi...
Sono alle prime armi
Sembra difficile
aaa
18/06/09 17:21
Louis
Non sempre l'operatore Mod può servire allo scopo; infatti:"l'operatore Mod viene utilizzato per dividere due numeri e restituire solo il resto. Se uno dei numeri è decimale, verrà arrotondato all'intero".
Quindi nel seguente caso: 12 / 4,3 il risultato restituito é, per quello che ci serve, errato.
Volendo si potrebbe utilizzare ( ad esempio, non escludo che vi siano modi migliori )la seguente routine:
Spero che ti sia utile.
Quindi nel seguente caso: 12 / 4,3 il risultato restituito é, per quello che ci serve, errato.
Volendo si potrebbe utilizzare ( ad esempio, non escludo che vi siano modi migliori )la seguente routine:
Option Explicit Private Sub Command1_Click() Dim sRisDec As String Dim dblDividendo As Double Dim dblDivisore As Double dblDividendo = TxtDivdo.Text dblDivisore = TxtDivre.Text ' Risultato della divisione: TxtRes.Text = Format(dblDividendo / dblDivisore, "#,##0.00") ' Decimali della divisione - Restituisce 2 caratteri da destra: sRisDec = Right$(TxtRes.Text, 2) If sRisDec = 0 Then MsgBox (Format(dblDividendo, "#,##0.00") & Space(1) & "é un multiplo di" & Space(1) & Format(dblDivisore, "#,##0.00")) Else: MsgBox (Format(dblDividendo, "#,##0.00") & Space(1) & "non é un multiplo di" & Space(1) & Format(dblDivisore, "#,##0.00")) End If End Sub
Spero che ti sia utile.
aaa
19/06/09 13:27
io90
Postato originariamente da Louis:
Non sempre l'operatore Mod può servire allo scopo; infatti:"l'operatore Mod viene utilizzato per dividere due numeri e restituire solo il resto. Se uno dei numeri è decimale, verrà arrotondato all'intero".
Quindi nel seguente caso: 12 / 4,3 il risultato restituito é, per quello che ci serve, errato.
Volendo si potrebbe utilizzare ( ad esempio, non escludo che vi siano modi migliori )la seguente routine:
Spero che ti sia utile.
Non sempre l'operatore Mod può servire allo scopo; infatti:"l'operatore Mod viene utilizzato per dividere due numeri e restituire solo il resto. Se uno dei numeri è decimale, verrà arrotondato all'intero".
Quindi nel seguente caso: 12 / 4,3 il risultato restituito é, per quello che ci serve, errato.
Volendo si potrebbe utilizzare ( ad esempio, non escludo che vi siano modi migliori )la seguente routine:
Option Explicit Private Sub Command1_Click() Dim sRisDec As String Dim dblDividendo As Double Dim dblDivisore As Double dblDividendo = TxtDivdo.Text dblDivisore = TxtDivre.Text ' Risultato della divisione: TxtRes.Text = Format(dblDividendo / dblDivisore, "#,##0.00") ' Decimali della divisione - Restituisce 2 caratteri da destra: sRisDec = Right$(TxtRes.Text, 2) If sRisDec = 0 Then MsgBox (Format(dblDividendo, "#,##0.00") & Space(1) & "é un multiplo di" & Space(1) & Format(dblDivisore, "#,##0.00")) Else: MsgBox (Format(dblDividendo, "#,##0.00") & Space(1) & "non é un multiplo di" & Space(1) & Format(dblDivisore, "#,##0.00")) End If End Sub
Spero che ti sia utile.
Io più semplicemente volevo evitarmi il:
If text1.text="3" or "6" or "9" or "12" or .................
Then msgbox......
end if
Cioè vorrei inserire un comando che a ogni multiplo di 3 ad esempio, mi esca una msgbox, senza star a segnare all'infinito tutti i suoi multipli
aaa
19/06/09 13:46
GrG
Ecco quello che cerchi prendendo come esempio i multipli di 3:
Private Sub Command1_Click() Dim risultato As Double risultato = Val(Text1.Text) Mod 3 'risultato contiente il resto della divisione tra la textbox e 3 'quindi se non c'è il resto ossia risultato = 0 significa che il numero nella textbox è divisibile per 3 If risultato > 0 Then 'Se invece c'è stato un resto esso sarà immagazinato in risultato che perciò sarà maggiore di 0 MsgBox "non è un multiplo" End If End Sub
aaa
19/06/09 14:58
Louis
Io90,
l'unica cortesia che devi usare a chi risponde alle tue domande, é quella di provare il codice che cortesemente ti é stato postato. Cosa che non é avvenuta nel caso di cui trattasi.
La routine che ti ho postato evidenzia appunto i numeri multipli eventualmente inseriti nella Txt TxtDivdo.Text compresi quelli del 3 (se digiti 9 e 3 nelle rispettive Txt ottieni la risposta "é un multiplo ..." o viceversa "non é un multiplo".
l'unica cortesia che devi usare a chi risponde alle tue domande, é quella di provare il codice che cortesemente ti é stato postato. Cosa che non é avvenuta nel caso di cui trattasi.
La routine che ti ho postato evidenzia appunto i numeri multipli eventualmente inseriti nella Txt TxtDivdo.Text compresi quelli del 3 (se digiti 9 e 3 nelle rispettive Txt ottieni la risposta "é un multiplo ..." o viceversa "non é un multiplo".
aaa