Matematičke funkcije
Matematičke funkcije skripte TapHome — MIN, MAX, AVG i njihove varijante STRICT, ABS, SIGN, SQRT, POWER, MOD, LOG, LN i DEWPOINT.
Funkcije za agregiranje vrijednosti i za osnovnu aritmetiku. ROUND, CEIL, FLOOR, RAND i RANDINT nalaze se na stranici Zaokruživanje i slučajni brojevi. Operatori kao +, -, * i / nalaze se na stranici Operatori; operatori % i ** ne postoje — koristite MOD i POWER.
MIN
MIN vraća najmanju od zadanih vrijednosti i preskače nepoznate vrijednosti (Null i NaN).
| |
Parametri — 1 do 100 vrijednosti ili točno jedna zbirka. Vrijednosti ne moraju biti brojevi, ali moraju biti međusobno usporedive, na primjer vrijednosti datetime.
Vraća — najmanju poznatu vrijednost. Kada nijedna vrijednost nije poznata, rezultat je NaN (Null kada su svi ulazi Null).
Primjer
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 d1Pogreške — Collection is empty za praznu zbirku.
MINSTRICT
MINSTRICT vraća najmanju od zadanih vrijednosti, ali čim naiđe na nepoznatu vrijednost (Null ili NaN), umjesto toga vraća tu vrijednost — koristite ga kada jedan ulaz koji nedostaje mora poništiti cijeli rezultat.
| |
Primjer
MINSTRICT(40, 80);
# Result: 40
MINSTRICT(80, NaN);
# Result: NaN
MINSTRICT({1, NaN, 3});
# Result: NaNArgumenti i pogreške isti su kao kod funkcije MIN.
MAX
MAX vraća najveću od zadanih vrijednosti i preskače nepoznate vrijednosti (Null i NaN); prihvaća iste argumente kao MIN.
| |
Primjer
MAX(40, 80, NaN);
# Result: 80
MAX({1, NaN, 3});
# Result: 3MAXSTRICT
MAXSTRICT vraća najveću od zadanih vrijednosti ili prvu nepoznatu vrijednost (Null ili NaN) na koju naiđe.
| |
Primjer
MAXSTRICT(2, 2, 6);
# Result: 6
MAXSTRICT({1, NaN, 3});
# Result: NaNAVG
AVG vraća aritmetičku sredinu zadanih vrijednosti kao double i preskače Null i NaN.
| |
Vraća — double; NaN kada nijedna vrijednost nije poznata. Prosjek znakova računa se iz njihovih kodova, pa je AVG('a', 'c') broj 98, a ne znak 'b'.
Primjer
AVG(40, 80, NaN);
# Result: 60
AVG({1, NaN, 3});
# Result: 2
AVG('a', 'c');
# Result: 98AVGSTRICT
AVGSTRICT vraća aritmetičku sredinu zadanih vrijednosti ili NaN čim je jedna od njih NaN.
| |
Vraća — double. Ulaz Null je pogreška pri izvršavanju, a ne preskočena vrijednost.
Primjer
AVGSTRICT(40, 80);
# Result: 60
AVGSTRICT(80, NaN);
# Result: NaNABS
ABS vraća apsolutnu vrijednost broja kao double.
ABS(-100);
# Result: 100SIGN
SIGN vraća -1 za negativan broj, 0 za nulu i 1 za pozitivan broj, kao int.
SIGN(-22.5);
# Result: -1SQRT
SQRT vraća drugi korijen broja koji je 0 ili veći.
SQRT(25);
# Result: 5Pogreške — Argument for SQRT cannot be less than 0.
POWER
POWER potencira broj zadanim eksponentom; eksponent smije biti negativan ili razlomak.
| |
Primjer
POWER(2, 3);
# Result: 8
POWER(10, -3);
# Result: 0.001
POWER(25, 0.5);
# Result: 5MOD
MOD vraća ostatak dijeljenja jednog broja drugim; radi i s decimalnim brojevima.
| |
Vraća — double s predznakom djeljenika, pa negativan djeljenik daje negativan ostatak (za razliku od funkcije MOD u Excelu). Djelitelj 0 daje NaN, a ne pogrešku.
Primjer
MOD(6, 4);
# Result: 2
MOD(6, 2.5);
# Result: 1
MOD(-7, 3);
# Result: -1LOG
LOG vraća logaritam pozitivnog broja sa zadanom bazom ili s bazom 10 kada se baza izostavi.
| |
Primjer
LOG(100);
# Result: 2
LOG(4, 0.5);
# Result: -2Pogreške — 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 vraća prirodni logaritam (baza e) pozitivnog broja.
LN(100);
# Result: 4.605 (rounded)Pogreške — Argument for LN cannot be less or equal to 0.
DEWPOINT
DEWPOINT vraća rosište u °C iz temperature zraka u °C i relativne vlažnosti zadane kao udio od 0 do 1 (0.5 znači 50 %).
| |
Vraća — double, izračunat Magnusovom formulom (jednadžba). Kada argument uopće nije broj (na primjer Null ili tekst), rezultat je -40.
Primjer
DEWPOINT(20, 0.5);
# Result: 9.26 (rounded)
DEWPOINT(0, 1);
# Result: 0Vlažnost zadajte kao udio.
DEWPOINT(20, 50)vraća 103.17, besmislenu vrijednost, bez ikakve pogreške. Vlažnost u postocima, na primjer neobrađenu vrijednost očitanu iz registra Modbus, najprije treba podijeliti sa 100.