---
title: "Matematické funkcie"
description: "Matematické funkcie skriptovacieho jazyka TapHome: MIN, MAX a AVG so spracovaním NaN a variantmi STRICT, ABS, SIGN, SQRT, POWER, MOD, LOG, LN a DEWPOINT z teploty a vlhkosti."
url: "https://taphome.com/sk/docs/script/mathematical-functions/"
language: sk
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["mathematical-functions","aggregation","rounding","scripting-language"]
  questions: ["Aký je rozdiel medzi funkciami MIN a MINSTRICT?","Ako TapHome spracúva hodnoty NaN vo funkciách MIN, MAX a AVG?","Ako vypočítam priemer hodnôt v TapHome skripte?","Ako vypočítam rosný bod z teploty a vlhkosti?","Ako umocním číslo alebo získam zvyšok po delení v TapHome skripte?"]
---

# Matematické funkcie

Matematické funkcie skriptu TapHome — MIN, MAX, AVG a ich varianty STRICT, ABS, SIGN, SQRT, POWER, MOD, LOG, LN a DEWPOINT.

Posledná aktualizácia: 2026-11-06

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](https://taphome.com/sk/docs/script/rounding-and-random/). Operátory ako `+`, `-`, `*` a `/` sú na stránke [Operátory](https://taphome.com/sk/docs/script/operators/); 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čí.

```text
MIN(value1, value2, ...)
MIN(collection)
```

**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**

```taphome
# neznáme hodnoty sa preskočia
MIN(40, 80, NaN);
# Result: 40
# funguje aj kolekcia
MIN({1, NaN, 3});
# Result: 1
# dve hodnoty typu datetime
VAR d1 := DATETIME(2014, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
VAR d2 := DATETIME(2015, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
# skorší z dvoch dátumov
MIN(d1, d2);
# Result: the value of d1
```

**Chyby** — *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.

```text
MINSTRICT(value1, value2, ...)
MINSTRICT(collection)
```

**Príklad**

```taphome
# všetky hodnoty sú známe
MINSTRICT(40, 80);
# Result: 40
# NaN sa vráti tak, ako je
MINSTRICT(80, NaN);
# Result: NaN
# rovnako pre kolekciu
MINSTRICT({1, NaN, 3});
# Result: NaN
```

Argumenty a chyby sú rovnaké ako pri [MIN](https://taphome.com/sk/docs/script/mathematical-functions/#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](https://taphome.com/sk/docs/script/mathematical-functions/#min).

```text
MAX(value1, value2, ...)
MAX(collection)
```

**Príklad**

```taphome
MAX(40, 80, NaN);
# Result: 80
MAX({1, NaN, 3});
# Result: 3
```

## MAXSTRICT

`MAXSTRICT` vráti najväčšiu zo zadaných hodnôt alebo prvú neznámu hodnotu (`Null` alebo `NaN`), na ktorú narazí.

```text
MAXSTRICT(value1, value2, ...)
MAXSTRICT(collection)
```

**Príklad**

```taphome
MAXSTRICT(2, 2, 6);
# Result: 6
MAXSTRICT({1, NaN, 3});
# Result: NaN
```

## AVG

`AVG` vráti aritmetický priemer zadaných hodnôt ako `double` a preskočí `Null` a `NaN`.

```text
AVG(value1, value2, ...)
AVG(collection)
```

**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**

```taphome
# NaN sa preskočí
AVG(40, 80, NaN);
# Result: 60
# priemer kolekcie
AVG({1, NaN, 3});
# Result: 2
# kódy znakov 97 a 99
AVG('a', 'c');
# Result: 98
```

## AVGSTRICT

`AVGSTRICT` vráti aritmetický priemer zadaných hodnôt, alebo `NaN`, hneď ako je niektorá z nich `NaN`.

```text
AVGSTRICT(value1, value2, ...)
AVGSTRICT(collection)
```

**Návratová hodnota** — `double`. Vstup `Null` je chyba pri vykonávaní, nie preskočená hodnota.

**Príklad**

```taphome
AVGSTRICT(40, 80);
# Result: 60
AVGSTRICT(80, NaN);
# Result: NaN
```

## ABS

`ABS` vráti absolútnu hodnotu čísla ako `double`.

```taphome
ABS(-100);
# Result: 100
```

## SIGN

`SIGN` vráti `-1` pre záporné číslo, `0` pre nulu a `1` pre kladné číslo, a to ako `int`.

```taphome
SIGN(-22.5);
# Result: -1
```

## SQRT

`SQRT` vráti druhú odmocninu čísla, ktoré je 0 alebo väčšie.

```taphome
SQRT(25);
# Result: 5
```

**Chyby** — *Argument for SQRT cannot be less than 0*.

## POWER

`POWER` umocní číslo na zadaný exponent; exponent môže byť záporný aj necelý.

```text
POWER(number, exponent)
```

**Príklad**

```taphome
# 2 na tretiu
POWER(2, 3);
# Result: 8
# záporný exponent
POWER(10, -3);
# Result: 0.001
# zlomkový exponent, odmocnina
POWER(25, 0.5);
# Result: 5
```

## MOD

`MOD` vráti zvyšok po delení jedného čísla druhým; funguje aj s desatinnými číslami.

```text
MOD(dividend, divisor)
```

**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**

```taphome
# celé čísla
MOD(6, 4);
# Result: 2
# desatinný deliteľ
MOD(6, 2.5);
# Result: 1
# znamienko delenca
MOD(-7, 3);
# Result: -1
```

## LOG

`LOG` vráti logaritmus kladného čísla so zadaným základom, alebo so základom 10, keď sa základ vynechá.

```text
LOG(number)
LOG(number, base)
```

**Príklad**

```taphome
LOG(100);
# Result: 2
LOG(4, 0.5);
# Result: -2
```

**Chyby** — *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.

```taphome
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 %).

```text
DEWPOINT(temperature, relativeHumidity)
```

**Návratová hodnota** — `double`, vypočítaná Magnusovým vzorcom ([rovnica](http://bmcnoldy.rsmas.miami.edu/Humidity.html)). Keď argument vôbec nie je číslo (napríklad `Null` alebo text), výsledok je `-40`.

**Príklad**

```taphome
DEWPOINT(20, 0.5);
# Result: 9.26 (rounded)
DEWPOINT(0, 1);
# Result: 0
```

> [!WARNING]
> Vlhkosť zadajte ako podiel. `DEWPOINT(20, 50)` vráti `103.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.
