Udostępnij za pośrednictwem


Mod — Operator (Visual Basic)

Dzieli dwie liczby i zwraca tylko reszty.

number1 Mod number2

Części

  • number1
    Wymagane.Dowolne wyrażenie liczbowe.

  • number2
    Wymagane.Dowolne wyrażenie liczbowe.

Obsługiwane typy

Wszystkie typy liczbowe.Obejmuje to niepodpisane i zmiennoprzecinkowych typów i Decimal.

Wynik

Wynik jest część pozostała po number1 jest dzielona przez number2.Na przykład, wyrażenie 14 Mod 4 daje w wyniku 2.

Uwagi

Jeśli każda number1 lub number2 jest wartość zmiennoprzecinkową, zwracana jest wartość zmiennoprzecinkowa resztę z dzielenia.Typ danych wyniku jest najmniejszą typ danych, który może przechowywać wszystkie możliwe wartości, które wynikają z podziału z typami danych number1 i number2.

Jeśli number1 lub number2 daje w wyniku nic nie, jest ona traktowana jako zero.

Następujące operatory pokrewne:

  • \ — Operator (Visual Basic) Zwraca wartość ilorazu liczbą całkowitą z dzielenia.Na przykład, wyrażenie 14 \ 4 ma wartość 3.

  • / — Operator (Visual Basic) Zwraca wartość ilorazu pełne, łącznie z pozostałą, jako liczba zmiennoprzecinkowa.Na przykład, wyrażenie 14 / 4 daje w wyniku 3.5.

Próba dzielenia przez Zero

Jeśli number2 ma wartość zero, zachowanie Mod operator zależy od typu danych operandów.Wyrzuca integralną rejon DivideByZeroException wyjątku.Zwraca dzielenia zmiennoprzecinkowego NaN.

Formuła równoważne

Wyrażenie a Mod b jest równoważne z jednej z następujących formuł:

a - (b * (a \ b))

a - (b * Fix(a / b))

Zmiennoprzecinkowe niedokładności

Podczas pracy z liczb zmiennoprzecinkowych, należy pamiętać, że nie zawsze mają dokładne odwzorowanie w pamięci.Może to prowadzić do nieoczekiwanych wyników z niektórych operacji, takich jak dokonać porównania wartości i Mod operatora.Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów związanych z typami danych (Visual Basic).

Przeciążenie

Mod Operator może być nadmiernie obciążony, co oznacza, że klasy lub struktury można zdefiniować jego zachowanie.Jeśli stosuje się kod Mod do wystąpienia klasy lub struktury, która zawiera takie przeciążenie rozumieć jego nowo zachowanie.Aby uzyskać więcej informacji, zobacz Procedury operatorów (Visual Basic).

Przykład

W poniższym przykładzie użyto Mod operatorowi dzieli dwie liczby i zwrócenie tylko reszty.Jeśli albo liczbą jest dane liczbowe zmiennoprzecinkowe, wynik jest liczba zmiennoprzecinkowa, który stanowi pozostałą.

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

Poniższy przykład ilustruje potencjał niedokładności zmiennoprzecinkowych operandów.Pierwsza instrukcja operandów Double, i 0,2 jest powtarzana nieskończenie ułamek binarne, z wartością przechowywaną 0.20000000000000001.W drugim instrukcja literał wpisany znak D wymusza oba operandy do Decimal, i 0,2 ma dokładne odwzorowanie.

firstResult = 2.0 Mod 0.2
' Double operation returns 0.2, not 0.
secondResult = 2D Mod 0.2D
' Decimal operation returns 0.

Zobacz też

Zadania

Rozwiązywanie problemów związanych z typami danych (Visual Basic)

Informacje

Operatory arytmetyczne (Visual Basic)

Kolejność wykonywania działań (Visual Basic)

Operatory według funkcji (Visual Basic)

Int

Fix

\ — Operator (Visual Basic)

Koncepcje

Operatory arytmetyczne w Visual Basic