---
title: "Mathematische Funktionen"
description: "Mathematische Funktionen in TapHome-Skripten: MIN, MAX und AVG mit Behandlung von NaN und Varianten STRICT, ABS, SIGN, SQRT, POWER, MOD, LOG, LN und DEWPOINT aus Temperatur und Luftfeuchtigkeit."
url: "https://taphome.com/de/docs/script/mathematical-functions/"
language: de
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["mathematical-functions","aggregation","rounding","scripting-language"]
  questions: ["Was ist der Unterschied zwischen den Funktionen MIN und MINSTRICT?","Wie behandelt TapHome NaN-Werte in MIN, MAX und AVG?","Wie berechne ich in einem TapHome-Skript den Mittelwert von Werten?","Wie berechne ich den Taupunkt aus Temperatur und Luftfeuchtigkeit?","Wie potenziere ich eine Zahl oder erhalte einen Divisionsrest in einem TapHome-Skript?"]
---

# Mathematische Funktionen

Mathematische Funktionen der TapHome-Skripte — MIN, MAX, AVG und ihre Varianten STRICT, ABS, SIGN, SQRT, POWER, MOD, LOG, LN und DEWPOINT.

Zuletzt aktualisiert: 2026-11-06

Funktionen zum Zusammenfassen von Werten und für grundlegende Arithmetik. `ROUND`, `CEIL`, `FLOOR`, `RAND` und `RANDINT` stehen auf [Runden und Zufallszahlen](https://taphome.com/de/docs/script/rounding-and-random/). Operatoren wie `+`, `-`, `*` und `/` stehen auf [Operatoren](https://taphome.com/de/docs/script/operators/); es gibt keinen Operator `%` oder `**` — verwenden Sie `MOD` und `POWER`.

## MIN

`MIN` gibt den kleinsten der angegebenen Werte zurück und überspringt unbekannte Werte (`Null` und `NaN`).

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

**Parameter** — 1 bis 100 Werte oder genau eine Sammlung. Die Werte müssen keine Zahlen sein, aber sie müssen miteinander vergleichbar sein, zum Beispiel Werte vom Typ `datetime`.

**Rückgabewert** — der kleinste bekannte Wert. Ist kein Wert bekannt, ist das Ergebnis `NaN` (`Null`, wenn jede Eingabe `Null` ist).

**Beispiel**

```taphome
# unbekannte Werte werden übersprungen
MIN(40, 80, NaN);
# Result: 40
# eine Sammlung funktioniert ebenfalls
MIN({1, NaN, 3});
# Result: 1
# zwei datetime-Werte
VAR d1 := DATETIME(2014, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
VAR d2 := DATETIME(2015, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
# das frühere der beiden Daten
MIN(d1, d2);
# Result: the value of d1
```

**Fehler** — *Collection is empty* bei einer leeren Sammlung.

## MINSTRICT

`MINSTRICT` gibt den kleinsten der angegebenen Werte zurück, sobald es aber auf einen unbekannten Wert (`Null` oder `NaN`) trifft, gibt es stattdessen diesen Wert zurück — verwenden Sie es, wenn eine einzige fehlende Eingabe das ganze Ergebnis ungültig machen muss.

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

**Beispiel**

```taphome
# alle Werte sind bekannt
MINSTRICT(40, 80);
# Result: 40
# NaN wird unverändert zurückgegeben
MINSTRICT(80, NaN);
# Result: NaN
# dasselbe für eine Sammlung
MINSTRICT({1, NaN, 3});
# Result: NaN
```

Argumente und Fehler sind dieselben wie bei [MIN](https://taphome.com/de/docs/script/mathematical-functions/#min).

## MAX

`MAX` gibt den größten der angegebenen Werte zurück und überspringt unbekannte Werte (`Null` und `NaN`); es akzeptiert dieselben Argumente wie [MIN](https://taphome.com/de/docs/script/mathematical-functions/#min).

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

**Beispiel**

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

## MAXSTRICT

`MAXSTRICT` gibt den größten der angegebenen Werte zurück oder den ersten unbekannten Wert (`Null` oder `NaN`), auf den es trifft.

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

**Beispiel**

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

## AVG

`AVG` gibt das arithmetische Mittel der angegebenen Werte als `double` zurück und überspringt `Null` und `NaN`.

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

**Rückgabewert** — `double`; `NaN`, wenn kein Wert bekannt ist. Bei Zeichen wird über ihre Zeichencodes gemittelt, daher ist `AVG('a', 'c')` die Zahl 98, nicht das Zeichen `'b'`.

**Beispiel**

```taphome
# NaN wird übersprungen
AVG(40, 80, NaN);
# Result: 60
# Mittelwert einer Sammlung
AVG({1, NaN, 3});
# Result: 2
# Zeichencodes 97 und 99
AVG('a', 'c');
# Result: 98
```

## AVGSTRICT

`AVGSTRICT` gibt das arithmetische Mittel der angegebenen Werte zurück oder `NaN`, sobald einer von ihnen `NaN` ist.

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

**Rückgabewert** — `double`. Eine Eingabe `Null` ist ein Laufzeitfehler, kein übersprungener Wert.

**Beispiel**

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

## ABS

`ABS` gibt den Absolutbetrag einer Zahl als `double` zurück.

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

## SIGN

`SIGN` gibt `-1` für eine negative Zahl, `0` für null und `1` für eine positive Zahl zurück, als `int`.

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

## SQRT

`SQRT` gibt die Quadratwurzel einer Zahl zurück, die 0 oder größer ist.

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

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

## POWER

`POWER` potenziert eine Zahl mit dem angegebenen Exponenten; der Exponent darf negativ oder ein Bruch sein.

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

**Beispiel**

```taphome
# 2 hoch 3
POWER(2, 3);
# Result: 8
# negativer Exponent
POWER(10, -3);
# Result: 0.001
# gebrochener Exponent, eine Quadratwurzel
POWER(25, 0.5);
# Result: 5
```

## MOD

`MOD` gibt den Rest der Division einer Zahl durch eine andere zurück; auch Dezimalzahlen funktionieren.

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

**Rückgabewert** — `double` mit dem Vorzeichen des Dividenden, ein negativer Dividend ergibt also einen negativen Rest (anders als `MOD` in Excel). Ein Divisor 0 ergibt `NaN`, keinen Fehler.

**Beispiel**

```taphome
# ganze Zahlen
MOD(6, 4);
# Result: 2
# Dezimalzahl als Divisor
MOD(6, 2.5);
# Result: 1
# Vorzeichen des Dividenden
MOD(-7, 3);
# Result: -1
```

## LOG

`LOG` gibt den Logarithmus einer positiven Zahl zur angegebenen Basis zurück, oder zur Basis 10, wenn die Basis fehlt.

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

**Beispiel**

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

**Fehler** — *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` gibt den natürlichen Logarithmus (Basis e) einer positiven Zahl zurück.

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

**Fehler** — *Argument for LN cannot be less or equal to 0*.

## DEWPOINT

`DEWPOINT` gibt den Taupunkt in °C aus der Lufttemperatur in °C und der relativen Luftfeuchtigkeit zurück, angegeben als Bruchteil von 0 bis 1 (0.5 bedeutet 50 %).

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

**Rückgabewert** — `double`, berechnet mit der Magnus-Formel ([Gleichung](http://bmcnoldy.rsmas.miami.edu/Humidity.html)). Ist ein Argument überhaupt keine Zahl (zum Beispiel `Null` oder Text), ist das Ergebnis `-40`.

**Beispiel**

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

> [!WARNING]
> Geben Sie die Luftfeuchtigkeit als Bruchteil an. `DEWPOINT(20, 50)` gibt ohne jeden Fehler 103.17 zurück, einen sinnlosen Wert. Eine Luftfeuchtigkeit in Prozent, zum Beispiel ein aus einem Modbus-Register gelesener Rohwert, muss zuerst durch 100 geteilt werden.
