Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dividiert zwei Zahlen und gibt nur den Rest zurück.
Syntax
result = number1 Mod number2
Bestandteile
result
Erforderlich. Eine beliebige numerische Variable oder Eigenschaft.
number1
Erforderlich. Ein beliebiger numerischer Ausdruck.
number2
Erforderlich. Ein beliebiger numerischer Ausdruck.
Unterstützte Typen
Alle numerischen Typen. Dazu gehören die nicht signierten und gleitkommafreien Typen und Decimal.
Ergebnis
Das Ergebnis ist der Rest nach number1 dem Dividiert durch number2. Der Ausdruck 14 Mod 4 wird z. B. als 2 ausgewertet.
Hinweis
Es gibt einen Unterschied zwischen Rest und Modul in mathematik, mit unterschiedlichen Ergebnissen für negative Zahlen. Der Mod Operator in Visual Basic, der .NET Framework-Operator op_Modulus und die zugrunde liegende Rem IL-Anweisung führen alle einen Restvorgang aus.
Das Ergebnis eines Mod Vorgangs behält das Vorzeichen der Dividende number1bei und kann daher positiv oder negativ sein. Das Ergebnis befindet sich immer im Bereich (-number2, number2), exklusiv. Beispiel:
Public Module Example
Public Sub Main()
Console.WriteLine($" 8 Mod 3 = {8 Mod 3}")
Console.WriteLine($"-8 Mod 3 = {-8 Mod 3}")
Console.WriteLine($" 8 Mod -3 = {8 Mod -3}")
Console.WriteLine($"-8 Mod -3 = {-8 Mod -3}")
End Sub
End Module
' The example displays the following output:
' 8 Mod 3 = 2
' -8 Mod 3 = -2
' 8 Mod -3 = 2
' -8 Mod -3 = -2
Bemerkungen
Wenn es sich um number1 einen Gleitkommawert handelt, number2 wird der Gleitkomma-Rest der Division zurückgegeben. Der Datentyp des Ergebnisses ist der kleinste Datentyp, der alle möglichen Werte enthalten kann, die aus der Division mit den Datentypen von number1 und number2.
Wenn number1 "Nothing" ausgewertet oder number2 als "Nothing" ausgewertet wird, wird sie als Null behandelt.
Verwandte Operatoren umfassen Folgendes:
Der \-Operator (Visual Basic) gibt den ganzzahligen Quotient einer Division zurück. Der Ausdruck
14 \ 4wird z. B. als 3 ausgewertet.Der /-Operator (Visual Basic) gibt den vollständigen Quotient zurück, einschließlich des Rests, als Gleitkommazahl. Der Ausdruck
14 / 4wird z. B. als 3,5 ausgewertet.
Versuchter Division um Null
Wenn number2 "null" ausgewertet wird, hängt das Verhalten des Mod Operators vom Datentyp der Operanden ab:
- Eine integrale Division löst eine DivideByZeroException Ausnahme aus, wenn
number2sie nicht zur Kompilierungszeit bestimmt werden kann, und generiert einen KompilierungszeitfehlerBC30542 Division by zero occurred while evaluating this expression, wennnumber2zur Kompilierungszeit null ausgewertet wird. - Eine Gleitkommateilung gibt zurück Double.NaN.
Entsprechende Formel
Der Ausdruck a Mod b entspricht einer der folgenden Formeln:
a - (b * (a \ b))
a - (b * Fix(a / b))
Gleitkomma imprägniert
Wenn Sie mit Gleitkommazahlen arbeiten, denken Sie daran, dass sie nicht immer eine genaue Dezimaldarstellung im Arbeitsspeicher aufweisen. Dies kann zu unerwarteten Ergebnissen aus bestimmten Vorgängen führen, z. B. Wertvergleich und Operator Mod . Weitere Informationen finden Sie unter "Problembehandlung bei Datentypen".
Überladen
Der Mod Operator kann überladen werden, was bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definieren kann. Wenn Ihr Code auf eine Instanz einer Klasse oder Struktur angewendet Mod wird, die eine solche Überladung enthält, stellen Sie sicher, dass Sie das neu definierte Verhalten verstehen. Weitere Informationen finden Sie unter Operatorprozeduren.
Beispiel 1
Im folgenden Beispiel wird der Mod Operator verwendet, um zwei Zahlen zu dividieren und nur den Rest zurückzugeben. Wenn es sich bei einer der Zahlen um eine Gleitkommazahl handelt, handelt es sich bei dem Ergebnis um eine Gleitkommazahl, die den Rest darstellt.
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
Beispiel 2
Im folgenden Beispiel wird die potenzielle Ungenauigkeit von Gleitkommaopernden veranschaulicht. In der ersten Anweisung sind Doubledie Operanden , und 0,2 ist ein unendlich wiederholter binärer Bruch mit einem gespeicherten Wert von 0,2000000000001. In der zweiten Anweisung erzwingt das Literaltypzeichen D sowohl Operanden als Decimalauch 0,2 eine genaue Darstellung.
firstResult = 2.0 Mod 0.2
' Double operation returns 0.2, not 0.
secondResult = 2D Mod 0.2D
' Decimal operation returns 0.