Operador / (Visual Basic)
Divide dois números e retorna um resultado de ponto flutuante.
Sintaxe
expression1 / expression2
Partes
expression1
Obrigatórios. Qualquer expressão numérica.
expression2
Obrigatórios. Qualquer expressão numérica.
Tipos com suporte
Todos os tipos numéricos, incluindo os de ponto flutuante e sem sinal e Decimal
.
Result
O resultado é o quociente total de expression1
dividido por expression2
, incluindo qualquer resto.
O operador \ (Visual Basic) retorna o quociente inteiro, que descarta o restante.
Comentários
O tipo de dados do resultado depende dos tipos de operandos. A tabela a seguir mostra como o tipo de dados do resultado é determinado.
Tipos de dados de operando | Tipos de dados de resultado |
---|---|
Ambas as expressões são tipos de dados integrais (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong) | Double |
Uma expressão é um tipo de dados Simples e a outra não é um Duplo | Single |
Uma expressão é um tipo de dados Decimal e a outra não é um Simples ou um Duplo | Decimal |
Qualquer expressão é um tipo de dados Duplo | Double |
Antes que a divisão seja executada, todas as expressões numéricas integrais são ampliadas para Double
. Se você atribuir o resultado a um tipo de dados integral, o Visual Basic tentará converter o resultado desse tipo Double
. Isso poderá gerar uma exceção se o resultado não se encaixar nesse tipo. Em particular, confira "Tentativa de Divisão por Zero" nesta página de Ajuda.
Se expression1
ou expression2
for avaliada como Nothing, ela será tratada como zero.
Tentativa de Divisão por Zero
Se expression2
for avaliado como zero, o operador /
se comportará de outra forma para diferentes tipos de dados de operando. A tabela a seguir mostra os comportamentos possíveis.
Tipos de dados de operando | Comportamento se expression2 for zero |
---|---|
Ponto flutuante (Single ou Double ) |
Retorna infinito (PositiveInfinity ou NegativeInfinity), ou NaN (não é um número) se expression1 também for zero |
Decimal |
Gera DivideByZeroException |
Integral (com ou sem sinal) | A tentativa de conversão de volta para o tipo integral gera OverflowException porque os tipos integrais não podem aceitar PositiveInfinity, NegativeInfinity ou NaN |
Observação
O operador /
pode ser sobrecarregado, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo dessa classe ou estrutura. Se o código usar esse operador em uma classe ou estrutura, certifique-se de entender seu comportamento redefinido. Para obter mais informações, confira Procedimentos de operador.
Exemplo
Este exemplo usa o operador /
para executar a divisão de ponto flutuante. O resultado é o quociente dos dois operandos.
Dim resultValue As Double
resultValue = 10 / 4
resultValue = 10 / 3
As expressões no exemplo anterior retornam valores de 2,5 e -3.333333. Observe que o resultado é sempre ponto flutuante (Double
), embora ambos os operandos sejam constantes inteiros.