Valutatore di espressioni

Calcolare il risultato di un'espressione con numeri interi e decimali, variabili di tipo numerico, variabili di tipo stringa (solo per confronti tra stringhe), operatori aritmetici e booleani e un insieme di funzioni.

Proprietà

Proprietà
Descrizione
Espressione
L'espressione da calcolare.
L'espressione può contenere un numero illimitato di parentesi, aperte e chiuse correttamente. Se l'espressione non segue la sintassi corretta, il convertitore non eseguirà il calcolo.
Modalità
La direzione del collegamento dinamico:
  • Lettura dal nodo sorgente all'elemento padre.
  • Scrittura dall'elemento padre al nodo sorgente.
  • Lettura dal nodo sorgente all'elemento padre e scrittura dall'elemento padre al nodo sorgente.

Sorgente

Una o più variabili, identificate da un segnaposto con un numero di indice nel formato
{
index
}
. Il numero dell'indice è progressivo, deve essere un numero intero maggiore di zero
{0}
.
I segnaposto possono essere visualizzati in qualsiasi ordine dell'espressione. Utilizzare un numero qualsiasi di parentesi nell'espressione.

Valori letterali

  • Boolean.
  • Numeri interi.
  • Numeri decimali, con il punto come separatore.
  • Numeri esadecimali con il prefisso
    0x
    .
  • Testo, ad esempio una stringa delimitata da virgolette doppie.
    SUGGERIMENTO: Due virgolette doppie (
    ""
    ) vengono interpretate come sequenza di escape.
  • Data e ora. Ad esempio
    2017-06-28T15:26:06.0790910
    .

Operatori

Categoria
Operatore
Associatività
Commenti
Unario
Unario meno:
-
Bit per bit NOT:
~
Operatore cast:
(type)
Da destra a sinistra
L'operatore cast
(type)
si applica solo a tutti i tipi di dati numerici e booleani.
Moltiplicativo
*
,
/
,
%
Da sinistra a destra
Additivo
+
,
-
Da sinistra a destra
Shift
<<
,
>>
Da sinistra a destra
Gli operatori di shift e relazionali si applicano ai seguenti tipi di dati:
  • Numeric
  • DateTime
  • Duration
Relazionale
<
,
<=
,
>
,
>=
Da sinistra a destra
Uguaglianza
==
,
!=
Da sinistra a destra
Gli operatori di uguaglianza si applicano a questi tipi di dati:
  • Numeric
  • DateTime
  • Duration
  • String
  • LocalizedText
Bit per bit AND, XOR, OR
&
,
^
,
|
Da sinistra a destra
Logico AND
&&
Da sinistra a destra
Logico OR
||
Da sinistra a destra

Tipi di dati

Convenzioni sul tipo di dati nel valutatore di espressioni:
  • I numeri interi letterali sono Int32.
  • I valori decimali letterali sono Double.
  • I valori numerici sono considerati Int32.
  • I valori letterali Vero e Falso vengono interpretati come Boolean.
  • L'operatore / restituisce sempre un valore Double.
  • L'operatore % genera un'eccezione in caso di divisione per modulo zero.
  • L'operatore % accetta operandi di tipo Float e Double.
  • Tutte le funzioni restituiscono un valore Double, eccetto la funzione Sign, che restituisce un valore Int32.
Gli operatori di cast unario
type
possono essere di questi tipi di dati:
  • bool, Boolean
  • sbyte, SByte
  • short, Int16
  • int, Int32
  • long, Int64
  • byte, Byte
  • ushort, UInt16
  • uint, UInt32
  • ulong, UInt64
  • float, Float
  • double, Double
Operatori applicati a tipi di dati specifici:
Operatore
Operand1
Operand2
Descrizione
Plus
DateTime
Numero integrale
Operand2
viene interpretato come millisecondi.
Plus
Numero integrale
DateTime
Operand1
viene interpretato come millisecondi.
Plus
DateTime
TimeZone (Struct)
Operand2
viene interpretato come minuti (TimeZone.Offset).
Plus
TimeZone (Struct)
DateTime
Operand1
viene interpretato come minuti (TimeZone.Offset).
Plus
TimeZone
Numero integrale
Operand1
viene interpretato come minuti (TimeZone.Offset).
Operand2
viene interpretato come minuti.
Plus
Numero integrale
TimeZone
Operand1
viene interpretato come minuti.
Operand2
viene interpretato come minuti (TimeZone.Offset).
Minus
DateTime
Numero integrale
Operand2
viene interpretato come millisecondi.
Minus
DateTime
TimeZone (Struct)
Operand2
viene interpretato come minuti (TimeZone.Offset).
Minus
TimeZone
Numero integrale
Operand1
viene interpretato come minuti (TimeZone.Offset).
Operand2
viene interpretato come minuti.

Funzioni

Funzioni da utilizzare nel valutatore di espressioni:
Funzione
Sintassi
Descrizione
Tipo di dati restituito
max
max(
value1
,
value2
,
value3
, ...)
Restituisce il valore più alto.
Double
min
min(
value1
,
value2
,
value3
, ...)
Restituisce il valore più basso.
Double
avg
avg(
value1
,
value2
,
value3
, ...)
Restituisce la media dei valori indicati.
Double
abs
abs(
value
)
Restituisce il valore assoluto del numero dato.
Double
trunc
trunc(
value
)
Restituisce la parte intera di un numero decimale.
Double
ceil
ceil(
value
)
Restituisce il valore approssimato per eccesso.
Double
floor
floor(
value
)
Restituisce il valore approssimato per difetto.
Double
round
round(
value
)
Restituisce l'approssimazione al numero intero più vicino.
Double
sqrt
sqrt(
value
)
Restituisce la radice quadrata del numero dato.
Double
sign
sign(
value
)
Controlla se il numero a virgola mobile fornito è negativo. Restituisce
0
se vero o
1
se falso.
Int32
like
like(
string_value
,
pattern
)
Restituisce
vero
se il parametro
string_value
corrisponde al
pattern
.
Boolean
isempty
isempty(
variable
)
Verifica se un dato NodeID, String, LocalizedText o DataTime è vuoto.
Boolean
if
if(
condition
,
value_if_true
,
value_if_false
)
Verifica se i parametri
value_if_true
e
value_if_false
sono dello stesso tipo di dati.
Tipo di dati
value_if_true

Output

Il valore risultante dall'espressione.

Esempio

Fornire un feedback
Hai domande o feedback su questa documentazione? invia il tuo feedback qui.
Normal