|
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.