Mathematische Funktionen
Mathematische Funktionen der TapHome-Skripte — MIN, MAX, AVG und ihre Varianten STRICT, ABS, SIGN, SQRT, POWER, MOD, LOG, LN und DEWPOINT.
Funktionen zum Zusammenfassen von Werten und für grundlegende Arithmetik. ROUND, CEIL, FLOOR, RAND und RANDINT stehen auf Runden und Zufallszahlen. Operatoren wie +, -, * und / stehen auf Operatoren; 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).
| |
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
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 d1Fehler — 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.
| |
Beispiel
MINSTRICT(40, 80);
# Result: 40
MINSTRICT(80, NaN);
# Result: NaN
MINSTRICT({1, NaN, 3});
# Result: NaNArgumente und Fehler sind dieselben wie bei 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.
| |
Beispiel
MAX(40, 80, NaN);
# Result: 80
MAX({1, NaN, 3});
# Result: 3MAXSTRICT
MAXSTRICT gibt den größten der angegebenen Werte zurück oder den ersten unbekannten Wert (Null oder NaN), auf den es trifft.
| |
Beispiel
MAXSTRICT(2, 2, 6);
# Result: 6
MAXSTRICT({1, NaN, 3});
# Result: NaNAVG
AVG gibt das arithmetische Mittel der angegebenen Werte als double zurück und überspringt Null und NaN.
| |
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
AVG(40, 80, NaN);
# Result: 60
AVG({1, NaN, 3});
# Result: 2
AVG('a', 'c');
# Result: 98AVGSTRICT
AVGSTRICT gibt das arithmetische Mittel der angegebenen Werte zurück oder NaN, sobald einer von ihnen NaN ist.
| |
Rückgabewert — double. Eine Eingabe Null ist ein Laufzeitfehler, kein übersprungener Wert.
Beispiel
AVGSTRICT(40, 80);
# Result: 60
AVGSTRICT(80, NaN);
# Result: NaNABS
ABS gibt den Absolutbetrag einer Zahl als double zurück.
ABS(-100);
# Result: 100SIGN
SIGN gibt -1 für eine negative Zahl, 0 für null und 1 für eine positive Zahl zurück, als int.
SIGN(-22.5);
# Result: -1SQRT
SQRT gibt die Quadratwurzel einer Zahl zurück, die 0 oder größer ist.
SQRT(25);
# Result: 5Fehler — 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.
| |
Beispiel
POWER(2, 3);
# Result: 8
POWER(10, -3);
# Result: 0.001
POWER(25, 0.5);
# Result: 5MOD
MOD gibt den Rest der Division einer Zahl durch eine andere zurück; auch Dezimalzahlen funktionieren.
| |
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
MOD(6, 4);
# Result: 2
MOD(6, 2.5);
# Result: 1
MOD(-7, 3);
# Result: -1LOG
LOG gibt den Logarithmus einer positiven Zahl zur angegebenen Basis zurück, oder zur Basis 10, wenn die Basis fehlt.
| |
Beispiel
LOG(100);
# Result: 2
LOG(4, 0.5);
# Result: -2Fehler — 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.
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 %).
| |
Rückgabewert — double, berechnet mit der Magnus-Formel (Gleichung). Ist ein Argument überhaupt keine Zahl (zum Beispiel Null oder Text), ist das Ergebnis -40.
Beispiel
DEWPOINT(20, 0.5);
# Result: 9.26 (rounded)
DEWPOINT(0, 1);
# Result: 0Geben 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.