Evaluador de expresiones
Calcule el resultado de una expresión con enteros, decimales, variables numéricas, variables de cadena para comparaciones de cadenas, operadores aritméticos y booleanos o un conjunto de funciones.
Propiedades
Propiedad | Descripción |
---|---|
Expresión | La expresión que se va a calcular. La expresión puede contener un número ilimitado de paréntesis abiertos y cerrados correctamente. Si la expresión no tiene una sintaxis correcta, el convertidor no realizará el cálculo. |
Modo | La dirección del vínculo dinámico:
|
Origen
Una o más variables, identificadas por un marcador de posición con un número de índice en el siguiente formato
{
. El número de índice es progresivo y debe ser un número entero mayor que cero index
}{0}
.Los marcadores de posición pueden aparecer en cualquier orden en la expresión. Use cualquier número de paréntesis que desee en la expresión.
Literales
- Booleanos.
- Enteros.
- Decimales donde el separador decimal debe ser un punto.
- Números hexadecimales con el prefijo0x.
- Texto como una cadena delimitada por comillas dobles.CONSEJO: Las comillas dobles repetidas ("") se interpretan como una secuencia de escape.
- La fecha y la hora. Por ejemplo,2017-06-28T15:26:06.0790910.
Operadores
Categoría | Operador | Asociatividad | Comentarios |
---|---|---|---|
Unarios | Unarios de negación: - NOT bit a bit: ~ Operador de trasmisión: (type) | De derecha a izquierda | El operador de trasmisión (type) se aplica a todos los tipos de datos numéricos y solo a tipos de datos booleanos. |
Multiplicativo | * ,/ , % | De izquierda a derecha | |
Aditivo | + , - | De izquierda a derecha | |
Mayús | << , >> | De izquierda a derecha | Los operadores de desplazamiento y relacionales se aplican a los siguientes tipos de datos:
|
Relacionales | < , <= , > , >= | De izquierda a derecha | |
Igualdad | == , != | De izquierda a derecha | Los operadores de igualdad se aplican a estos tipos de datos:
|
AND, XOR, OR bit a bit | & , ^ , | | De izquierda a derecha | |
AND lógico | && | De izquierda a derecha | |
OR lógico | || | De izquierda a derecha |
Tipos de datos
Convenciones de tipos de datos en el evaluador de expresiones:
- Los enteros literales son Int32.
- Los literales decimales son Double.
- Los valores numéricos se consideran Int32.
- Los literales Verdadero y Falso se interpretan como Boolean.
- El operador / devuelve siempre un valor Double.
- El operador % genera una excepción cuando hay división por módulo cero.
- El operador % acepta operandos Float y Double.
- Todas las funciones devuelven un valor Double excepto para el signo, que devuelve un valor Int32.
El
type
de operadores de conversión unaria puede ser uno de estos tipos de datos:- bool, Boolean
- byte, SByte
- short, Int16
- int, Int32
- long, Int64
- byte, Byte
- ushort, UInt16
- uint, UInt32
- ulong, UInt64
- float, Float
- double, Double
Operadores aplicados a tipos de datos específicos:
Operador | Operand1 | Operand2 | Descripción |
---|---|---|---|
Más | DateTime | Número integral | Operand2 se interpreta como milisegundos. |
Más | Número integral | DateTime | Operand1 se interpreta como milisegundos. |
Más | DateTime | TimeZone (Struct) | Operand2 se interpreta como minutos (TimeZone.Offset). |
Más | TimeZone (Struct) | DateTime | Operand1 se interpreta como minutos (TimeZone.Offset). |
Más | TimeZone | Número integral | Operand1 se interpreta como minutos (TimeZone.Offset).Operand2 se interpreta como minutos. |
Más | Número integral | TimeZone | Operand1 se interpreta como minutos.Operand2 se interpreta como minutos (TimeZone.Offset). |
Menos | DateTime | Número integral | Operand2 se interpreta como milisegundos. |
Menos | DateTime | TimeZone (Struct) | Operand2 se interpreta como minutos (TimeZone.Offset). |
Menos | TimeZone | Número integral | Operand1 se interpreta como minutos (TimeZone.Offset).Operand2 se interpreta como minutos. |
Funciones
Funciones que se pueden utilizar en el evaluador de expresiones:
Función | Sintaxis | Descripción | Devolver el tipo de datos |
---|---|---|---|
max | max( value1 , value2 , value3 , ...) | Devuelve el valor más grande. | Double |
min | min( value1 , value2 , value3 , ...) | Devuelve el valor más bajo. | Double |
avg | avg( value1 , value2 , value3 , ...) | Devuelve la media de los valores dados. | Double |
abs | abs( value ) | Devuelve el valor absoluto del número dado. | Double |
trunc | trunc( value ) | Devuelve la parte entera de un número decimal. | Double |
ceil | ceil( value ) | Devuelve el valor aproximado por exceso. | Double |
floor | floor( value ) | Devuelve el valor aproximado por defecto. | Double |
round | round( value ) | Devuelve la aproximación al entero más cercano. | Double |
sqrt | sqrt( value ) | Devuelve la raíz cuadrada del número dado. | Double |
sign | sign( value ) | Comprueba si el número de punto flotante dado es negativo. Devuelve 0 si es verdadero, o 1 si es falso. | Int32 |
like | like( string_value , pattern ) | Devuelve verdadero si el parámetro string_value coincide con el pattern . | Boolean |
isempty | isempty( variable ) | Comprueba si un determinado NodeID, String, LocalizedText o DataTime está vacío. | Boolean |
if | if( condition , value_if_true , value_if_false ) | Comprueba si los parámetros value_if_true value_if_false son del mismo tipo de datos. | Tipo de datos value_if_true |
Salida
El valor resultante de la expresión.
Ejemplo
Entregue su opinión