Operador Mod (Visual Basic)
Divide dois números e retorna apenas o restante.
number1 Mod number2
Partes
number1
Obrigatório. Qualquer expressão numérica.number2
Obrigatório. Qualquer expressão numérica.
Os tipos suportados
Todos os tipos numéricos. Isso inclui os tipos de ponto flutuante e não assinados e Decimal.
Resultado
O resultado é o que resta após number1 é dividida por number2. Por exemplo, 14 Mod 4 a expressão avaliará como 2.
Comentários
Se qualquer um dos number1 ou number2 é um valor de ponto flutuante, o restante da divisão de ponto flutuante é retornado. O tipo de dados do resultado é o menor tipo de dados que pode conter todos os possíveis valores resultantes de divisão com os tipos de dados de number1 e number2.
Senumber1 ou number2 são avaliadas como0x9tb07z(v=vs.120).md, elas são tratadas como zero
Relacionadas operadores incluem o seguinte:
O Operador \ (Visual Basic) Retorna o quociente de inteiro de uma divisão. Por exemplo, 14 \ 4 a expressão avaliará como 3.
O Operador / (Visual Basic) Retorna o quociente completo, incluindo o restante, como um número de ponto flutuante. Por exemplo, 14 / 4 a expressão avaliará como 3.5.
Tentativa de Divisão por Zero
Se number2 for avaliada como zero, o comportamento do operador Mod depende de tipo de dados dos operandos. Uma divisão integral gera uma exceção DivideByZeroException. NaN retorna uma divisão de ponto flutuante.
Fórmula equivalente
A expressão a Mod b é equivalente a uma das fórmulas a seguir:
a - (b * (a \ b))
a - (b * Fix(a / b))
Floating-Point Imprecision
Quando você trabalha com números de ponto flutuante, lembre que eles nem sempre têm uma representação precisa na memória. Isso pode levar a resultados inesperados em certas operações, com comparação de valores e com o operador Mod. Para obter mais informações, consulte Solucionando problemas de tipos de dados (Visual Basic).
Sobrecarga
O operador Mod pode ser sobrecarregado ,o que significa que uma classe ou estrutura pode redefinir seu comportamento. Se seu código se aplica Mod a uma instância de uma classe ou estrutura que inclua tal uma sobrecarga, não deixe que você compreender o comportamento redefinido. Para obter mais informações, consulte Procedimentos do operador (Visual Basic).
Exemplo
O exemplo a seguir utiliza o operador Mod para dividir dois números e retornar somente o resto. Se o número for um número de ponto flutuante, o resultado é um número de ponto flutuante que representa o restante.
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
O exemplo a seguir demonstra a imprecisão potencial de operandos em ponto flutuante. Na primeira instrução, os operandos são Double,e 0.2 é uma fração binária infinitamente de repetição com um valor armazenado de 0.20000000000000001. Na segunda instrução, o caractere de tipo literal D força os Dois operandos Decimal,e 0.2 tem uma representação exata.
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 do operador no Visual Basic
Operadores listados por funcionalidade (Visual Basic)