Valutatore di espressione

Funzione

Calcola 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

Espressione per il calcolo.

Nota

se l’espressione non rispetta la sintassi prevista, il convertitore non esegue il calcolo.

Modalità

  • Lettura: lettura (collegamento da sorgente a padre)

  • Scrittura: scrittura (collegamento da padre a sorgente)

  • Lettura/scrittura: lettura e scrittura (collegamento da sorgente a padre e viceversa)

Sorgente

Una o più variabili, identificate da un segnaposto con un numero di indice, nel formato {index}. Il numero di indice è progressivo, deve essere intero e partire da zero ({0}).

I segnaposto possono comparire in qualsiasi ordine nell’espressione.

Valori letterali ammessi

  • Booleani: true e false.

  • Numeri interi

  • Numeri decimali. Il separatore per i decimali deve essere il punto.

  • Numeri esadecimali con prefisso «0x» (es.: 0xff)

  • Stringhe di testo, delimitate da doppi apici (es.: string)

    Nota

    il doppio apice ripetuto due volte ("") è interpretato come sequenza di escape.

Operatori ammessi

  • Aritmetici: +, -, *, /, % e operatore unario -

  • Bitwise: &, |, ^, ~

  • Shift: <<, >>

  • Logici: &&, ||, !

  • Unario di casting di tipo (<data_type>)

  • Confronto <, <=, >, >=, ==, !=

    Nota

    tutti gli operatori di confronto sono applicabili sia ai dati di tipo numerico, sia ai dati di tipo DateTime e Duration.

    Nota

    gli operatori == e != sono applicabili anche ai dati di tipo String e LocalizedText.

Convenzioni sui data type

  • I numeri interi letterali sono di tipo Int32.

  • I numeri decimali letterali sono di tipo Double.

  • Le variabili di tipo numerico sono considerate di tipo Int32.

  • I letterali true e false sono interpretati come di tipo Boolean.

  • L’operatore / restituisce sempre un valore di tipo Double.

  • L’operatore % con divisione a modulo zero dà luogo a un’eccezione .

  • L’operatore % accetta operandi di tipo Float e Double.

  • Tutte le funzioni restituiscono sempre un valore di tipo Double, a eccezione della funzione sign, che restituisce un valore di tipo Int32.

  • L’operatore unario di casting accetta i seguenti tipi di dati:

    • bool, Boolean

    • sbyte, SByte

    • short, Int16

    • int, Int32

    • long, Int64

    • byte, Byte

    • ushort, UInt16

    • uint, UInt32

    • ulong, UInt64

    • float, Single

    • double, Double

Parentesi

L’espressione può contenere un numero illimitato di parentesi tonde, correttamente aperte e chiuse.

Funzioni disponibili

Sono disponibili le seguenti funzioni matematiche:

Funzione

Valore calcolato

Esempio

max

Massimo tra i valori degli argomenti

max ({0}, {1})

min

Minimo tra i valori degli argomenti

min ({0}, {1})

avg

Media dei valori degli argomenti

avg ({0}, {1})

abs

Valore assoluto

abs ({0})

trunc

Parte intera di un numero decimale

trunc ({0})

ceil

Valore approssimato per eccesso

ceil (({0} + {1})/2)

floor

Valore approssimato per difetto

floor (({0} + {1})/2)

round

Valore approssimato all’intero più vicino

round (({0} + {1})/2)

sqrt

Radice quadrata

sqrt ({1})

sign

0 se il valore dell’argomento è maggiore di zero

1 se il valore dell’argomento è minore di zero

sign ({1})

Uscita

Il valore risultante dall’espressione.

Rappresentazione logica

Di seguito un esempio di rappresentazione del convertitore nell’editor dei collegamenti dinamici avanzati.

Vedi anche

Concetti correlati

Convertitori

Procedure correlate

Usare l’editor dei collegamenti dinamici avanzati