Оператор 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)

Int

Fix

Оператор \ (Visual Basic)

Основные понятия

Арифметические операторы в Visual Basic