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:
  • Se lee del nodo de origen al primario.
  • Se escribe de un elemento primario en el nodo de origen.
  • Se lee del nodo de origen al primario y se escribe del primario en el nodo de origen.

Origen

Una o más variables, identificadas por un marcador de posición con un número de índice en el siguiente formato
{
index
}
. El número de índice es progresivo y debe ser un número entero mayor que cero
{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 prefijo
    0x
    .
  • 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:
  • Numeric
  • DateTime
  • Duration
Relacionales
<
,
<=
,
>
,
>=
De izquierda a derecha
Igualdad
==
,
!=
De izquierda a derecha
Los operadores de igualdad se aplican a estos tipos de datos:
  • Numeric
  • DateTime
  • Duration
  • String
  • LocalizedText
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
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.