Operatora mod (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:
\ Operatora (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 z typów 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 Operator procedur (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 z typów danych (Visual Basic)
Informacje
Operatory arytmetyczne (Visual Basic)
Pierwszeństwo operatorów w języku Visual Basic
Podmioty wymienione według funkcji (Visual Basic)