Operator Mod(Visual Basic)
Teilt zwei Zahlen und gibt nur den Rest zurück.
number1 Mod number2
Teile
number1
Erforderlich. Ein beliebiger numerischer Ausdruck.number2
Erforderlich. Ein beliebiger numerischer Ausdruck.
Unterstützte Typen
Alle numerischen Typen. Dies schließt die Typen ohne Vorzeichen, Gleitkommatypen und Decimal ein.
Ergebnis
Das Ergebnis ist der Rest, nachdem number1 durch number2 geteilt wurde. Zum Beispiel ergibt der Ausdruck 14 Mod 4 das Ergebnis 2.
Hinweise
Wenn number1 oder number2 ein Gleitkommawert ist, wird der Gleitkommarest der Division zurückgegeben. Als Datentyp des Ergebnisses wird der kleinste Datentyp gewählt, der alle möglichen Ergebniswerte der Division mit den Datentypen von number1 und number2 speichern kann.
Wenn number1 oder number2 zu Nothing ausgewertet wird, wird der Ausdruck als 0 (null) behandelt.
Zugehörige Operatoren beinhalten Folgendes:
Der \-Operator (Visual Basic) gibt den ganzzahligen Quotienten einer Division zurück. Zum Beispiel ergibt der Ausdruck 14 \ 4 das Ergebnis 3.
Der /-Operator (Visual Basic) gibt den vollen Quotienten, einschließlich des Restes, als Gleitkommazahl zurück. Zum Beispiel ergibt der Ausdruck 14 / 4 das Ergebnis 3,5.
Versuchte Division durch 0 (null)
Wenn number2 0 (null) ergibt, hängt das Verhalten des Operators Mod vom Datentyp der Operanden ab. Bei einer Ganzzahldivision wird DivideByZeroException ausgelöst. Bei einer Gleitkommadivision wird NaN zurückgegeben.
Entsprechende Formel
Der Ausdruck a Mod b ist zu beiden der folgenden Formeln äquivalent:
a - (b * (a \ b))
a - (b * Fix(a / b))
Ungenauigkeit von Gleitkommawerten
Wenn Sie mit Gleitkommazahlen arbeiten, müssen Sie daran denken, dass die Zahlen im Speicher nicht immer präzise dargestellt werden. Dies kann bei bestimmten Operationen zu unerwarteten Ergebnissen führen, z. B. beim Wertvergleich und beim Operator Mod. Weitere Informationen finden Sie unter Problembehandlung bei Datentypen (Visual Basic).
Überladen
Der Operator Mod kann überladen werden, d. h. dass eine Klasse oder Struktur sein Verhalten neu definieren kann. Wenn Ihr Code den Operator Mod auf eine Instanz einer Klasse oder Struktur anwendet, die sein Verhalten neu definiert, müssen Sie das neu definierte Verhalten verstehen. Weitere Informationen finden Sie unter Operatorprozeduren (Visual Basic).
Beispiel
In diesem Beispiel werden mit dem Operator Mod zwei Zahlen dividiert und nur der Rest zurückgegeben. Wenn es sich bei einer Zahl um eine Gleitkommazahl handelt, ist das Ergebnis 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
Im folgenden Beispiel wird die potenzielle Ungenauigkeit von Gleitkommaoperanden veranschaulicht. In der ersten Anweisung sind die Operanden vom Typ Double, und 0,2 ist ein sich unendlich wiederholender Binärbruch, der im Speicher durch den Wert 0,20000000000000001 dargestellt wird. In der zweiten Anweisung erzwingt das Literaltypzeichen D, dass beide Operanden den Decimal-Datentyp haben. 0,2 wird präzise dargestellt.
firstResult = 2.0 Mod 0.2
' Double operation returns 0.2, not 0.
secondResult = 2D Mod 0.2D
' Decimal operation returns 0.
Siehe auch
Aufgaben
Problembehandlung bei Datentypen (Visual Basic)
Referenz
Arithmetische Operatoren (Visual Basic)
Operatorrangfolge in Visual Basic
Operatoren sortiert nach Funktionalität (Visual Basic)