Partilhar via


Operador Mod (Visual Basic)

Divides two numbers and returns only the remainder.

number1 Mod number2

Parts

  • number1
    Required. Any numeric expression.

  • number2
    Required. Any numeric expression.

Supported Types

All numeric types. This includes the unsigned and floating-point types and Decimal.

Result

The result is the remainder after number1 is divided by number2. For example, the expression 14 Mod 4 evaluates to 2.

Comentários

If either number1 or number2 is a floating-point value, the floating-point remainder of the division is returned. The data type of the result is the smallest data type that can hold all possible values that result from division with the data types of number1 and number2.

Se number1 ou number2 for avaliada como nada, ela é tratada como zero.

Related operators include the following:

  • The Operador \ (Visual Basic) returns the integer quotient of a division. For example, the expression 14 \ 4 evaluates to 3.

  • The Operador / (Visual Basic) returns the full quotient, including the remainder, as a floating-point number. For example, the expression 14 / 4 evaluates to 3.5.

Attempted Division by Zero

If number2 evaluates to zero, the behavior of the Mod operator depends on the data type of the operands. An integral division throws a DivideByZeroException exception. A floating-point division returns NaN.

Equivalent Formula

The expression a Mod b is equivalent to either of the following formulas:

a - (b * (a \ b))

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

Floating-Point Imprecision

When you work with floating-point numbers, remember that they do not always have a precise representation in memory. This could lead to unexpected results from certain operations, such as value comparison and the Mod operator. For more information, see Solucionando problemas de tipos de dados (Visual Basic).

Overloading

The Mod operator can be overloaded, which means that a class or structure can redefine its behavior. If your code applies Mod to an instance of a class or structure that includes such an overload, be sure you understand its redefined behavior. For more information, see Procedimentos de operador (Visual Basic).

Exemplo

The following example uses the Mod operator to divide two numbers and return only the remainder. If either number is a floating-point number, the result is a floating-point number that represents the remainder.

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

The expressions in the previous example return values of 0, 1, 3.4, 2.6, and 1.15.

The following example demonstrates the potential imprecision of floating-point operands. In the first statement, the operands are Double, and 0.2 is an infinitely repeating binary fraction with a stored value of 0.20000000000000001. In the second statement, the literal type character D forces both operands to Decimal, and 0.2 has a precise representation.

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

Consulte também

Tarefas

Solucionando problemas de tipos de dados (Visual Basic)

Referência

Operadores Aritméticos (Visual Basic)

Precedência de operadores no Visual Basic

Operadores listados por Funcionalidade (Visual Basic)

Int

Fix

Operador \ (Visual Basic)

Conceitos

Operadores aritméticos em Visual Basic