Freigeben über


Operator Mod(Visual Basic)

Aktualisiert: November 2007

Dividiert zwei Zahlen und gibt nur den Rest zurück.

number1 Mod number2

Bestandteile

  • number1
    Erforderlich. Beliebiger numerischer Ausdruck.

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

Wenn number2 0 (null) ergibt, hängt das Verhalten des Mod-Operators 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. bei einem Wertvergleich oder bei Verwendung des Mod-Operators. Weitere Informationen hierzu finden Sie unter Problembehandlung bei Datentypen.

Überladen

Der Mod-Operator kann überladen werden, d. h. dass eine Klasse oder Struktur sein Verhalten neu definieren kann. Wenn Ihr Code den Mod-Operator auf eine Instanz einer Klasse oder Struktur anwendet, die sein Verhalten neu definiert, müssen Sie das neu definierte Verhalten verstehen. Weitere Informationen hierzu finden Sie unter Operatorprozeduren.

Beispiel

In diesem Beispiel werden mit dem Mod-Operator 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.

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

Die Ausdrücke im vorangehenden Beispiel geben die Werte 0/1/3,4/2,6 und 1,15 zurück.

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

Konzepte

Arithmetische Operatoren in Visual Basic

Referenz

Arithmetische Operatoren (Visual Basic)

Operatorrangfolge in Visual Basic

Operatoren sortiert nach Funktionalität

Die Funktionen "Int" und "Fix" (Visual Basic)

\-Operator (Visual Basic)