Operatore Mod (Visual Basic)
Divide due numeri e restituisce solo il resto.
number1 Mod number2
Parti
number1
Necessario.Qualsiasi espressione numerica.number2
Necessario.Qualsiasi espressione numerica.
Tipi supportati
Tutti i tipi numerici.Sono inclusi i tipi non firmati e a virgola mobile e Decimal.
Risultato
Il risultato è il resto della divisione di number1 per number2.Ad esempio, l'espressione 14 Mod 4 restituisce 2.
Note
Se number1 o number2 sono valori a virgola mobile, viene restituito il resto a virgola mobile della divisione.Il tipo di dati del risultato corrisponde al tipo di dati più piccolo che può contenere tutti i possibili valori risultanti dalla divisione con i tipi di dati di number1 e number2.
Se number1 o number2 restituisce Nothing, tale parametro viene considerato uguale a zero.
Gli operatori correlati includono gli elementi seguenti:
Operatore \ (Visual Basic) restituisce il quoziente intero di una divisione.Ad esempio, l'espressione 14 \ 4 restituisce 3.
Operatore / (Visual Basic) restituisce il quoziente completo, incluso il resto, come un numero a virgola mobile.Ad esempio, l'espressione 14 / 4 restituisce 3,5.
Tentativo di divisione per zero
Se number2 restituisce zero, il comportamento dell'operatore Mod dipenderà dal tipo di dati degli operandi.Una divisione integrale genera un'eccezione DivideByZeroException.Una divisione a virgola mobile restituisce NaN.
Formula equivalente
L'espressione a Mod b è equivalente a una delle seguenti formule:
a - (b * (a \ b))
a - (b * Fix(a / b))
Imprecisione dei valori a virgola mobile
Quando si utilizzano numeri a virgola mobile, tenere presente che non sempre contengono una rappresentazione precisa in memoria.Per questo motivo, è possibile che determinate operazioni restituiscano risultati imprevisti, come il confronto dei valori e l'operatore Mod.Per ulteriori informazioni, vedere Risoluzione dei problemi relativi ai tipi di dati (Visual Basic).
Overload
È possibile eseguire l'overload dell'operatore Mod; ciò significa che una classe o una struttura possono ridefinire il relativo comportamento.Se il codice applica Mod a un'istanza di una classe o di una struttura che include tale overload, assicurarsi di avere compreso il comportamento ridefinito.Per ulteriori informazioni, vedere Routine di operatore (Visual Basic).
Esempio
Nell'esempio riportato di seguito l'operatore Mod viene utilizzato per dividere due numeri e restituire solo il resto.Se uno dei numeri è a virgola mobile, il risultato sarà il resto espresso con un numero a virgola mobile.
Debug.WriteLine(10 Mod 5)
' Output: 0
Debug.WriteLine(10 Mod 3)
' Output: 1
Debug.WriteLine(-10 Mod 3)
' Output: -1
Debug.WriteLine(12 Mod 4.3)
' Output: 3.4
Debug.WriteLine(12.6 Mod 5)
' Output: 2.6
Debug.WriteLine(47.9 Mod 9.35)
' Output: 1.15
Nell''esempio riportato di seguito viene illustrata la potenziale imprecisione degli operandi a virgola mobile.Nella prima istruzione gli operandi sono Double e 0.2 è una frazione binaria ripetuta all'infinito con un valore memorizzato pari a 0.20000000000000001.Nella seconda istruzione il carattere di tipo letterale D impone che entrambi gli operandi siano Decimal e la rappresentazione di 0.2 è precisa.
firstResult = 2.0 Mod 0.2
' Double operation returns 0.2, not 0.
secondResult = 2D Mod 0.2D
' Decimal operation returns 0.
Vedere anche
Attività
Risoluzione dei problemi relativi ai tipi di dati (Visual Basic)
Riferimenti
Operatori aritmetici (Visual Basic)
Precedenza tra gli operatori in Visual Basic
Elenco degli operatori per funzionalità (Visual Basic)