Matematické funkcie
Matematické funkcie skriptu TapHome — MIN, MAX, AVG a ich varianty STRICT, ABS, SIGN, SQRT, POWER, MOD, LOG, LN a DEWPOINT.
Funkcie na agregáciu hodnôt a základnú aritmetiku. ROUND, CEIL, FLOOR, RAND a RANDINT sú na stránke Zaokrúhľovanie a náhodné čísla. Operátory ako +, -, * a / sú na stránke Operátory; operátor % ani ** neexistuje — použite MOD a POWER.
MIN
MIN vráti najmenšiu zo zadaných hodnôt a neznáme hodnoty (Null a NaN) preskočí.
| |
Parametre — 1 až 100 hodnôt alebo presne jedna kolekcia. Hodnoty nemusia byť čísla, ale musia byť navzájom porovnateľné, napríklad hodnoty datetime.
Návratová hodnota — najmenšia známa hodnota. Keď nie je známa žiadna hodnota, výsledok je NaN (Null, keď sú všetky vstupy Null).
Príklad
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 d1Chyby — Collection is empty pri prázdnej kolekcii.
MINSTRICT
MINSTRICT vráti najmenšiu zo zadaných hodnôt, ale hneď ako narazí na neznámu hodnotu (Null alebo NaN), vráti namiesto výsledku túto hodnotu — použite ju, keď jeden chýbajúci vstup musí zneplatniť celý výsledok.
| |
Príklad
MINSTRICT(40, 80);
# Result: 40
MINSTRICT(80, NaN);
# Result: NaN
MINSTRICT({1, NaN, 3});
# Result: NaNArgumenty a chyby sú rovnaké ako pri MIN.
MAX
MAX vráti najväčšiu zo zadaných hodnôt a neznáme hodnoty (Null a NaN) preskočí; prijíma rovnaké argumenty ako MIN.
| |
Príklad
MAX(40, 80, NaN);
# Result: 80
MAX({1, NaN, 3});
# Result: 3MAXSTRICT
MAXSTRICT vráti najväčšiu zo zadaných hodnôt alebo prvú neznámu hodnotu (Null alebo NaN), na ktorú narazí.
| |
Príklad
MAXSTRICT(2, 2, 6);
# Result: 6
MAXSTRICT({1, NaN, 3});
# Result: NaNAVG
AVG vráti aritmetický priemer zadaných hodnôt ako double a preskočí Null a NaN.
| |
Návratová hodnota — double; NaN, keď nie je známa žiadna hodnota. Znaky sa priemerujú podľa svojich kódov, preto AVG('a', 'c') je číslo 98, nie znak 'b'.
Príklad
AVG(40, 80, NaN);
# Result: 60
AVG({1, NaN, 3});
# Result: 2
AVG('a', 'c');
# Result: 98AVGSTRICT
AVGSTRICT vráti aritmetický priemer zadaných hodnôt, alebo NaN, hneď ako je niektorá z nich NaN.
| |
Návratová hodnota — double. Vstup Null je chyba pri vykonávaní, nie preskočená hodnota.
Príklad
AVGSTRICT(40, 80);
# Result: 60
AVGSTRICT(80, NaN);
# Result: NaNABS
ABS vráti absolútnu hodnotu čísla ako double.
ABS(-100);
# Result: 100SIGN
SIGN vráti -1 pre záporné číslo, 0 pre nulu a 1 pre kladné číslo, a to ako int.
SIGN(-22.5);
# Result: -1SQRT
SQRT vráti druhú odmocninu čísla, ktoré je 0 alebo väčšie.
SQRT(25);
# Result: 5Chyby — Argument for SQRT cannot be less than 0.
POWER
POWER umocní číslo na zadaný exponent; exponent môže byť záporný aj necelý.
| |
Príklad
POWER(2, 3);
# Result: 8
POWER(10, -3);
# Result: 0.001
POWER(25, 0.5);
# Result: 5MOD
MOD vráti zvyšok po delení jedného čísla druhým; funguje aj s desatinnými číslami.
| |
Návratová hodnota — double so znamienkom delenca, takže záporný delenec dá záporný zvyšok (na rozdiel od MOD v Exceli). Deliteľ 0 dá NaN, nie chybu.
Príklad
MOD(6, 4);
# Result: 2
MOD(6, 2.5);
# Result: 1
MOD(-7, 3);
# Result: -1LOG
LOG vráti logaritmus kladného čísla so zadaným základom, alebo so základom 10, keď sa základ vynechá.
| |
Príklad
LOG(100);
# Result: 2
LOG(4, 0.5);
# Result: -2Chyby — 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 vráti prirodzený logaritmus (so základom e) kladného čísla.
LN(100);
# Result: 4.605 (rounded)Chyby — Argument for LN cannot be less or equal to 0.
DEWPOINT
DEWPOINT vráti rosný bod v °C z teploty vzduchu v °C a relatívnej vlhkosti zadanej ako podiel od 0 do 1 (0.5 znamená 50 %).
| |
Návratová hodnota — double, vypočítaná Magnusovým vzorcom (rovnica). Keď argument vôbec nie je číslo (napríklad Null alebo text), výsledok je -40.
Príklad
DEWPOINT(20, 0.5);
# Result: 9.26 (rounded)
DEWPOINT(0, 1);
# Result: 0Vlhkosť zadajte ako podiel.
DEWPOINT(20, 50)vráti103.17, teda nezmyselnú hodnotu, a to bez akejkoľvek chyby. Vlhkosť v percentách, napríklad surovú hodnotu prečítanú z registra Modbus, treba najprv vydeliť 100.