---
title: "Funkcje matematyczne"
description: "Funkcje matematyczne skryptów TapHome: MIN, MAX i AVG z obsługą NaN i wariantami STRICT, ABS, SIGN, SQRT, POWER, MOD, LOG, LN oraz DEWPOINT z temperatury i wilgotności."
url: "https://taphome.com/pl/docs/script/mathematical-functions/"
language: pl
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["mathematical-functions","aggregation","rounding","scripting-language"]
  questions: ["Czym różnią się funkcje MIN i MINSTRICT?","Jak TapHome obsługuje wartości NaN w MIN, MAX i AVG?","Jak obliczyć średnią wartości w skrypcie TapHome?","Jak obliczyć punkt rosy z temperatury i wilgotności?","Jak podnieść liczbę do potęgi lub uzyskać resztę z dzielenia w skrypcie TapHome?"]
---

# Funkcje matematyczne

Funkcje matematyczne w skryptach TapHome — MIN, MAX, AVG i ich warianty STRICT, ABS, SIGN, SQRT, POWER, MOD, LOG, LN i DEWPOINT.

Ostatnia aktualizacja: 2026-11-06

Funkcje do agregacji wartości i podstawowej arytmetyki. `ROUND`, `CEIL`, `FLOOR`, `RAND` i `RANDINT` są na stronie [Zaokrąglanie i liczby losowe](https://taphome.com/pl/docs/script/rounding-and-random/). Operatory takie jak `+`, `-`, `*` i `/` są na stronie [Operatory](https://taphome.com/pl/docs/script/operators/); nie ma operatora `%` ani `**` — użyj `MOD` i `POWER`.

## MIN

`MIN` zwraca najmniejszą z podanych wartości i pomija wartości nieznane (`Null` i `NaN`).

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

**Parametry** — od 1 do 100 wartości albo dokładnie jedna kolekcja. Wartości nie muszą być liczbami, ale muszą być ze sobą porównywalne, na przykład wartości `datetime`.

**Zwraca** — najmniejszą znaną wartość. Gdy żadna wartość nie jest znana, wynikiem jest `NaN` (`Null`, gdy każde wejście jest `Null`).

**Przykład**

```taphome
# nieznane wartości są pomijane
MIN(40, 80, NaN);
# Result: 40
# działa też kolekcja
MIN({1, NaN, 3});
# Result: 1
# dwie wartości 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);
# wcześniejsza z dwóch dat
MIN(d1, d2);
# Result: the value of d1
```

**Błędy** — *Collection is empty* dla pustej kolekcji.

## MINSTRICT

`MINSTRICT` zwraca najmniejszą z podanych wartości, ale gdy tylko napotka wartość nieznaną (`Null` lub `NaN`), zwraca zamiast niej tę wartość — używaj jej, gdy jedno brakujące wejście ma unieważnić cały wynik.

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

**Przykład**

```taphome
# wszystkie wartości są znane
MINSTRICT(40, 80);
# Result: 40
# NaN jest zwracane bez zmian
MINSTRICT(80, NaN);
# Result: NaN
# tak samo dla kolekcji
MINSTRICT({1, NaN, 3});
# Result: NaN
```

Argumenty i błędy są takie same jak dla [MIN](https://taphome.com/pl/docs/script/mathematical-functions/#min).

## MAX

`MAX` zwraca największą z podanych wartości i pomija wartości nieznane (`Null` i `NaN`); przyjmuje te same argumenty co [MIN](https://taphome.com/pl/docs/script/mathematical-functions/#min).

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

**Przykład**

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

## MAXSTRICT

`MAXSTRICT` zwraca największą z podanych wartości albo pierwszą napotkaną wartość nieznaną (`Null` lub `NaN`).

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

**Przykład**

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

## AVG

`AVG` zwraca średnią arytmetyczną podanych wartości jako `double` i pomija `Null` i `NaN`.

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

**Zwraca** — `double`; `NaN`, gdy żadna wartość nie jest znana. Znaki są uśredniane według kodów znaków, więc `AVG('a', 'c')` daje liczbę 98, a nie znak `'b'`.

**Przykład**

```taphome
# NaN jest pomijane
AVG(40, 80, NaN);
# Result: 60
# średnia z kolekcji
AVG({1, NaN, 3});
# Result: 2
# kody znaków 97 i 99
AVG('a', 'c');
# Result: 98
```

## AVGSTRICT

`AVGSTRICT` zwraca średnią arytmetyczną podanych wartości albo `NaN`, gdy tylko jedna z nich jest `NaN`.

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

**Zwraca** — `double`. Wejście `Null` to błąd wykonania, a nie pominięta wartość.

**Przykład**

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

## ABS

`ABS` zwraca wartość bezwzględną liczby jako `double`.

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

## SIGN

`SIGN` zwraca `-1` dla liczby ujemnej, `0` dla zera i `1` dla liczby dodatniej, jako `int`.

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

## SQRT

`SQRT` zwraca pierwiastek kwadratowy liczby równej 0 lub większej.

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

**Błędy** — *Argument for SQRT cannot be less than 0*.

## POWER

`POWER` podnosi liczbę do podanego wykładnika; wykładnik może być ujemny lub ułamkowy.

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

**Przykład**

```taphome
# 2 do potęgi 3
POWER(2, 3);
# Result: 8
# wykładnik ujemny
POWER(10, -3);
# Result: 0.001
# wykładnik ułamkowy, pierwiastek
POWER(25, 0.5);
# Result: 5
```

## MOD

`MOD` zwraca resztę z dzielenia jednej liczby przez drugą; działa też dla liczb dziesiętnych.

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

**Zwraca** — `double` ze znakiem dzielnej, więc ujemna dzielna daje ujemną resztę (inaczej niż `MOD` w Excelu). Dzielnik 0 daje `NaN`, a nie błąd.

**Przykład**

```taphome
# liczby całkowite
MOD(6, 4);
# Result: 2
# dzielnik dziesiętny
MOD(6, 2.5);
# Result: 1
# znak dzielnej
MOD(-7, 3);
# Result: -1
```

## LOG

`LOG` zwraca logarytm liczby dodatniej przy podanej podstawie albo przy podstawie 10, gdy podstawa zostanie pominięta.

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

**Przykład**

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

**Błędy** — *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` zwraca logarytm naturalny (o podstawie e) liczby dodatniej.

```taphome
LN(100);
# Result: 4.605 (rounded)
```

**Błędy** — *Argument for LN cannot be less or equal to 0*.

## DEWPOINT

`DEWPOINT` zwraca punkt rosy w °C na podstawie temperatury powietrza w °C i wilgotności względnej podanej jako ułamek od 0 do 1 (0.5 oznacza 50 %).

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

**Zwraca** — `double`, obliczany wzorem Magnusa ([równanie](http://bmcnoldy.rsmas.miami.edu/Humidity.html)). Gdy argument w ogóle nie jest liczbą (na przykład `Null` lub tekst), wynikiem jest `-40`.

**Przykład**

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

> [!WARNING]
> Wilgotność podawaj jako ułamek. `DEWPOINT(20, 50)` zwraca 103.17, wartość bez sensu, bez żadnego błędu. Wilgotność w procentach, na przykład surową wartość odczytaną z rejestru Modbus, trzeba najpierw podzielić przez 100.
