Оператор Mod (Visual Basic)
Делит два числа и возвращает только остаток.
number1 Mod number2
Части
number1
Обязательное.Произвольное числовое выражение.number2
Обязательное.Произвольное числовое выражение.
Поддерживаемые типы
Все числовые типы.К ним относятся типы чисел с плавающей запятой и без знака и тип Decimal.
Результат
В результате получается остаток после деления number1 на number2.Например выражение 14 Mod 4 равно 2.
Заметки
Если number1 или number2 является значением с плавающей запятой, то возвращается остаток от деления с плавающей запятой.Тип данных результата является наименьшим типом данных, который может содержать все возможные значения результатов деления с участием типов данных number1 и number2.
Если number1 или number2 равны Nothing, оно интерпретируется как ноль.
Связанные операторы включают:
Оператор \ (Visual Basic) возвращает целочисленное частное от деления.Например выражение 14 \ 4 равно 3.
Оператор / (Visual Basic) возвращает полное частное, включая остаток, как число с плавающей запятой.Например выражение 14 / 4 равно 3,5.
Попытка деления на ноль
Если значением number2 является ноль, поведение оператора Mod зависит от типа данных операндов.Целочисленное деление вызывает DivideByZeroException исключение.Деление с плавающей запятой возвращает NaN.
Эквивалентная формула
Выражение a Mod b является эквивалентом для любой из следующих формул:
a - (b * (a \ b))
a - (b * Fix(a / b))
Погрешность чисел с плавающей запятой
Используя числа с плавающей запятой, следует учитывать, что они не всегда имеют точное представление в памяти.Это может привести к непредвиденным результатам для определенных операций, таких как сравнение значений и Mod.Для получения дополнительной информации см. Устранение неполадок, связанных с типами данных (Visual Basic).
Перегрузка
Оператор Mod может быть overloaded. Это означает, что класс или структура может переопределить его поведение.Если код применяет Mod к экземпляру класса или структуры, включающей такие перегрузки, обязательно убедитесь в том, что их переопределенное поведение понятно.Для получения дополнительной информации см. Процедуры операторов (Visual Basic).
Пример
В следующем примере оператор Mod используется для деление одного числа на другое и возврата только остатка.Если оба числа являются числами с плавающей запятой, результат является числом с плавающей запятой, представляющим остаток.
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
В следующем примере показана возможная неточность операндов с плавающей запятой.В первом операторе операнды относятся к типу Double, и 0,2 является периодической бесконечной двоичной дробью, которая хранится в виде значения 0,20000000000000001.Во втором операторе символ типа литерала D указывает, что оба операнда относятся к типу Decimal, и 0,2 имеет точное представление.
firstResult = 2.0 Mod 0.2
' Double operation returns 0.2, not 0.
secondResult = 2D Mod 0.2D
' Decimal operation returns 0.
См. также
Задачи
Устранение неполадок, связанных с типами данных (Visual Basic)
Ссылки
Арифметические операторы (Visual Basic)
Порядок применения операторов в Visual Basic
Список операторов, сгруппированных по функциональному назначению (Visual Basic)