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

Обновлен: Ноябрь 2007

Делит одно число на другое и возвращает только остаток.

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. Дополнительные сведения см. в разделе Устранение неполадок, связанных с типами данных.

Перегрузка

Оператор Mod может быть overloaded. Это означает, что класс или структура может переопределить его поведение. Если код применяет Mod к экземпляру класса или структуры, включающей такие перегрузки, обязательно убедитесь в том, что их переопределенное поведение понятно. Дополнительные сведения см. в разделе Процедуры операторов.

Пример

В следующем примере оператор Mod используется для деление одного числа на другое и возврата только остатка. Если оба числа являются числами с плавающей запятой, результат является числом с плавающей запятой, представляющим остаток.

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

Выражения в предыдущем примере возвращает значения 0, 1, 3.4, 2.6 и 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

Список операторов, сгруппированных по функциональному назначению

Функции Int и Fix (Visual Basic)

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