Mod, opérateur (Visual Basic)
Effectue la division de deux nombres et retourne seulement le reste.
number1 Mod number2
Composants
number1
Requis.Toute expression numérique.number2
Requis.Toute expression numérique.
Types pris en charge
Tous les types numériques.Cela inclut les types non signés et à virgule flottante et Decimal.
Résultat
Le résultat représente le reste après la division de number1 par number2.Par exemple, l'expression 14 Mod 4 prend la valeur 2.
Notes
Si number1 ou number2 est une valeur à virgule flottante, le reste à virgule flottante de la division est retourné.Le type de données du résultat est le plus petit type de données pouvant contenir toutes les valeurs possibles résultant de la division avec les types de données de number1 et number2.
Si number1 ou number2 correspond à Nothing, elle est considérée comme un zéro.
Les opérateurs connexes incluent les éléments suivants :
\, opérateur (Visual Basic) retourne le quotient entier d'une division.Par exemple, l'expression 14 \ 4 prend la valeur 3.
/, opérateur (Visual Basic) retourne le quotient complet, y compris le reste, en tant que nombre à virgule flottante.Par exemple, l'expression 14 / 4 prend la valeur 3,5.
Essai de division par zéro
Si number2 correspond à zéro, le comportement de l'opérateur Mod dépend du type de données des opérandes.Une division intégrale lève une exception DivideByZeroException.Une division de nombres à virgule flottante retourne NaN.
Formule équivalente
L'expression a Mod b est équivalente à l'une ou l'autre des formules suivantes :
a - (b * (a \ b))
a - (b * Fix(a / b))
Imprécision des nombres à virgule flottante
Lorsque vous utilisez des nombres à virgule flottante, n'oubliez pas qu'ils n'ont pas toujours de représentation précise dans la mémoire.Certaines opérations pourraient avoir des résultats inattendus, comme la comparaison de valeur et l'opérateur Mod.Pour plus d'informations, consultez Dépannage des types de données (Visual Basic).
Surcharge
L'opérateur Modpeut être surchargé, ce qui signifie qu'une classe ou une structure peut redéfinir son comportement.Si votre code applique Mod sur l'instance d'une classe ou d'une structure qui inclut une telle surcharge, assurez-vous que vous comprenez son comportement redéfini.Pour plus d'informations, consultez Procédures d'opérateur (Visual Basic).
Exemple
L'exemple suivant utilise l'opérateur Mod pour diviser deux nombres et retourner seulement le reste.Si l'un des nombres est à virgule flottante, le résultat est un nombre à virgule flottante représentant le reste.
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
L'exemple suivant montre l'imprécision potentielle des opérandes à virgule flottante.Dans la première instruction, les opérandes sont Double et 0,2 représente une fraction binaire se répétant à l'infini avec une valeur stockée de 0,20000000000000001.Dans la deuxième instruction, le caractère de type de littéral D force les deux opérandes sur la valeur Decimal et 0,2 a une représentation précise.
firstResult = 2.0 Mod 0.2
' Double operation returns 0.2, not 0.
secondResult = 2D Mod 0.2D
' Decimal operation returns 0.
Voir aussi
Tâches
Dépannage des types de données (Visual Basic)
Référence
Opérateurs arithmétiques (Visual Basic)
Priorité des opérateurs en Visual Basic
Opérateurs répertoriés par fonctionnalité (Visual Basic)