Funcții matematice
Funcțiile matematice ale scripturilor TapHome — MIN, MAX, AVG și variantele lor STRICT, ABS, SIGN, SQRT, POWER, MOD, LOG, LN și DEWPOINT.
Funcții pentru agregarea valorilor și pentru aritmetica de bază. ROUND, CEIL, FLOOR, RAND și RANDINT se găsesc pe pagina Rotunjire și numere aleatoare. Operatori precum +, -, * și / se găsesc pe pagina Operatori; nu există operatorii % sau ** — în locul lor se folosesc MOD și POWER.
MIN
MIN returnează cea mai mică dintre valorile date și omite valorile necunoscute (Null și NaN).
| |
Parametri — între 1 și 100 de valori sau exact o colecție. Valorile nu trebuie să fie numere, dar trebuie să fie comparabile între ele, de exemplu valori datetime.
Returnează — cea mai mică valoare cunoscută. Când nicio valoare nu este cunoscută, rezultatul este NaN (Null când toate intrările sunt Null).
Exemplu
MIN(40, 80, NaN);
# Result: 40
MIN({1, NaN, 3});
# Result: 1
VAR d1 := DATETIME(2014, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
VAR d2 := DATETIME(2015, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
MIN(d1, d2);
# Result: the value of d1Erori — Collection is empty pentru o colecție goală.
MINSTRICT
MINSTRICT returnează cea mai mică dintre valorile date, dar imediat ce întâlnește o valoare necunoscută (Null sau NaN) returnează în schimb acea valoare — se folosește când o singură intrare lipsă trebuie să invalideze întregul rezultat.
| |
Exemplu
MINSTRICT(40, 80);
# Result: 40
MINSTRICT(80, NaN);
# Result: NaN
MINSTRICT({1, NaN, 3});
# Result: NaNArgumentele și erorile sunt aceleași ca la MIN.
MAX
MAX returnează cea mai mare dintre valorile date și omite valorile necunoscute (Null și NaN); acceptă aceleași argumente ca MIN.
| |
Exemplu
MAX(40, 80, NaN);
# Result: 80
MAX({1, NaN, 3});
# Result: 3MAXSTRICT
MAXSTRICT returnează cea mai mare dintre valorile date sau prima valoare necunoscută (Null ori NaN) pe care o întâlnește.
| |
Exemplu
MAXSTRICT(2, 2, 6);
# Result: 6
MAXSTRICT({1, NaN, 3});
# Result: NaNAVG
AVG returnează media aritmetică a valorilor date ca double și omite Null și NaN.
| |
Returnează — double; NaN când nicio valoare nu este cunoscută. Caracterele se mediază după codurile lor, deci AVG('a', 'c') este numărul 98, nu caracterul 'b'.
Exemplu
AVG(40, 80, NaN);
# Result: 60
AVG({1, NaN, 3});
# Result: 2
AVG('a', 'c');
# Result: 98AVGSTRICT
AVGSTRICT returnează media aritmetică a valorilor date sau NaN imediat ce una dintre ele este NaN.
| |
Returnează — double. O intrare Null produce o eroare la rulare, nu este o valoare omisă.
Exemplu
AVGSTRICT(40, 80);
# Result: 60
AVGSTRICT(80, NaN);
# Result: NaNABS
ABS returnează valoarea absolută a unui număr ca double.
ABS(-100);
# Result: 100SIGN
SIGN returnează -1 pentru un număr negativ, 0 pentru zero și 1 pentru un număr pozitiv, ca int.
SIGN(-22.5);
# Result: -1SQRT
SQRT returnează rădăcina pătrată a unui număr egal cu 0 sau mai mare.
SQRT(25);
# Result: 5Erori — Argument for SQRT cannot be less than 0.
POWER
POWER ridică un număr la exponentul dat; exponentul poate fi negativ sau fracționar.
| |
Exemplu
POWER(2, 3);
# Result: 8
POWER(10, -3);
# Result: 0.001
POWER(25, 0.5);
# Result: 5MOD
MOD returnează restul împărțirii unui număr la altul; funcționează și cu numere zecimale.
| |
Returnează — double cu semnul deîmpărțitului, deci un deîmpărțit negativ dă un rest negativ (spre deosebire de MOD din Excel). Un împărțitor 0 dă NaN, nu o eroare.
Exemplu
MOD(6, 4);
# Result: 2
MOD(6, 2.5);
# Result: 1
MOD(-7, 3);
# Result: -1LOG
LOG returnează logaritmul unui număr pozitiv în baza dată sau în baza 10 când baza este omisă.
| |
Exemplu
LOG(100);
# Result: 2
LOG(4, 0.5);
# Result: -2Erori — Arguments for LOG cannot be less or equal to 0; Second argument for LOG cannot be less or equal to 0 or 1.
LN
LN returnează logaritmul natural (baza e) al unui număr pozitiv.
LN(100);
# Result: 4.605 (rounded)Erori — Argument for LN cannot be less or equal to 0.
DEWPOINT
DEWPOINT returnează punctul de rouă în °C din temperatura aerului în °C și umiditatea relativă dată ca fracție de la 0 la 1 (0.5 înseamnă 50 %).
| |
Returnează — double, calculat cu formula Magnus (ecuația). Când un argument nu este deloc număr (de exemplu Null sau text), rezultatul este -40.
Exemplu
DEWPOINT(20, 0.5);
# Result: 9.26 (rounded)
DEWPOINT(0, 1);
# Result: 0Umiditatea se transmite ca fracție.
DEWPOINT(20, 50)returnează 103.17, o valoare fără sens, fără nicio eroare. O umiditate în procente, de exemplu o valoare brută citită dintr-un registru Modbus, trebuie împărțită mai întâi la 100.