Operadores de comparación

Visual Basic VBLR

Operadores de comparación

       

Se utilizan para comparar expresiones.

Sintaxis

resultado = expresión1 operadorcomparación expresión2

resultado = objeto1 Is objeto2

resultado = cadena Like patrón

Los operadores de comparación constan de las siguientes partes:

Parte Descripción
resultado Requerido; cualquier variable numérica.
expresión Requerido; cualquier expresión.
operadorcomparación Requerido; cualquier operador de comparación.
objeto Requerido; cualquier nombre de objeto.
cadena Requerido; cualquier expresión de cadena.
patrón Requerido; cualquier expresión de cadena o intervalo de caracteres.

Comentarios

Esta tabla contiene una lista de los operadores de comparación y de las condiciones que determinan si el resultado es True, False o Null:

Operador True si False si Null si
< (Menor que) expresión1 < expresión2 expresión1 >= expresión2 expresión1 o expresión2 = Null
<= (Menor o igual que) expresión1 <= expresión2 expresión1 > expresión2 expresión1 o expresión2 = Null
> (Mayor que) expresión1 > expresión2 expresión1 <= expresión2 expresión1 o expresión2 = Null
>= (Mayor o igual que) expresión1 >= expresión2 expresión1 < expresión2 expresión1 o expresión2 = Null
= (Igual a) expresión1 = expresión2 expresión1 <> expresión2 expresión1 o expresión2 = Null
<> (Distinto de) expresión1 <> expresión2 expresión1 = expresión2 expresión1 o expresión2 = Null

Nota   Los operadores Is y Like tienen funciones de comparación específicas que difieren de las de los operadores incluidos en la siguiente tabla.

Cuando se comparan dos expresiones, puede ser difícil determinar si éstas se comparan como números o como cadenas de caracteres. En la siguiente tabla se muestra el modo en que se comparan expresiones y cuál es el resultado cuando cualquiera de las expresiones no es del tipo Variant:

Si Entonces
Ambas expresiones son de tipos de datos numéricos (Byte, Boolean, Integer, Long, Single, Double, Date, Currency o Decimal) Se efectúa una comparación numérica.
Ambas expresiones son de tipo String Se efectúa una comparación de cadenas.
Una expresión es de tipo de datos numérico y la otra es un tipo Variant que es, o puede ser, un número Se efectúa una comparación numérica.
Una expresión es de tipo de datos numérico y la otra es un tipo Variant de cadena de caracteres que no se puede convertir en un número Provoca un error de Error de tipos.
Una expresión es de tipo String y la otra es cualquier tipo Variant, con excepción de Null Se efectúa una comparación de cadenas.
Una expresión es Empty y la otra es del tipo de datos numérico Se efectúa una comparación numérica, usando 0 como la expresión Empty.
Una expresión es Empty y la otra es del tipo String Se efectúa una comparación de cadenas, utilizando una cadena de caracteres de longitud cero ("") como la expresión Empty.

Si tanto expresión1 como expresión2 son del tipo Variant, el tipo subyacente de las mismas es el que determina la manera en que se comparan. En la siguiente tabla se muestra el modo en que se comparan las expresiones y cuál es el resultado de la operación de acuerdo con el tipo subyacente de Variant:

Si Entonces
Ambas expresiones tipo Variant son numéricas Se efectúa una comparación numérica.
Ambas expresiones tipo Variant son cadenas de caracteres Se efectúa una comparación de cadenas.
Una expresión tipo Variant es numérica y la otra es una cadena de caracteres La expresión numérica es menor que la expresión de cadena.
Una expresión tipo Variant es Empty y la otra es numérica Se efectúa una comparación numérica, usando 0 como la expresión Empty.
Una expresión tipo Variant es Empty y la otra es una cadena de caracteres Se efectúa una comparación de cadenas, utilizando una cadena de caracteres de longitud cero ("") como la expresión Empty.
Ambas expresiones tipo Variant son Empty Las expresiones son iguales.

Cuando se compara un tipo Single con un tipo Double, éste se redondea al grado de precisión del tipo Single.

Si una expresión tipo Currency se compara con una de tipo Single o Double, ésta se convierte al tipo Currency. De igual forma, cuando un tipo Decimal se compara con un tipo Single o Double, el tipo Single o el Double se convierten a tipo Decimal. Para el tipo Currency, cualquier valor fraccionario menor que 0,0001 se pierde; para el tipo Decimal, cualquier valor fraccionario menor que 1E-28 se pierde y puede ocurrir un error de desbordamiento. Perder valores fraccionarios puede hacer que dos valores se comparen como iguales cuando en realidad no lo son.