Mod, opérateur (Visual Basic)

Mise à jour : novembre 2007

Effectue la division de deux nombres et retourne seulement le reste.

number1 Mod number2

Éléments

  • 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.

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.

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.

Dim testResult As Double
testResult = 10 Mod 5
testResult = 10 Mod 3
testResult = 12 Mod 4.3
testResult = 12.6 Mod 5
testResult = 47.9 Mod 9.35

Les expressions dans les exemples précédents retournent des valeurs de 0 ; 1 ; 3,4 ; 2,6 et 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

Concepts

Opérateurs arithmétiques en 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é

Fonctions Int, Fix (Visual Basic)

\, opérateur (Visual Basic)