Mathematische Funktionen

Funktionen zum Durchführen diverser mathematischer Operationen wie Runden, Potenzieren, Quadrieren, etc.

Inhaltsverzeichnis

Allgemeine Mathematik

Abs

Gibt den absoluten Wert einer bestimmten Zahl zurück.

Wert := Abs(Zahl)

Der Rückgabewert hat den gleichen Typ wie Zahl (Integer oder Floating-Point-Zahl).

MsgBox, % Abs(-1.2) ; Gibt 1.2 zurück

Ceil

Gibt eine bestimmte Zahl zurück, aufgerundet auf den nächsten Integer (ohne .00-Suffix).

Wert := Ceil(Zahl)
MsgBox, % Ceil(1.2)  ; Gibt 2 zurück
MsgBox, % Ceil(-1.2) ; Gibt -1 zurück

Exp

Gibt e zurück (ungefähr 2.71828182845905), potenziert mit N.

Wert := Exp(N)

Der Parameter N kann negativ sein und einen Dezimalpunkt enthalten. Um neben e noch andere Zahlen zu potenzieren, verwenden Sie den **-Operator.

MsgBox, % Exp(1.2) ; Gibt 3.320117 zurück

Floor

Gibt eine bestimmte Zahl zurück, abgerundet auf den nächsten Integer (ohne .00-Suffix).

Wert := Floor(Zahl)
MsgBox, % Floor(1.2)  ; Gibt 1 zurück
MsgBox, % Floor(-1.2) ; Gibt -2 zurück

Log

Gibt den Logarithmus (Basis 10) einer bestimmten Zahl zurück.

Wert := Log(Zahl)

Das Ergebnis ist eine Floating-Point-Zahl. Wenn Zahl negativ ist, wird eine leere Zeichenkette zurückgegeben.

MsgBox, % Log(1.2) ; Gibt 0.079181 zurück

Ln

Gibt den Logarithmus (Basis e) einer bestimmten Zahl zurück.

Wert := Ln(Zahl)

Das Ergebnis ist eine Floating-Point-Zahl. Wenn Zahl negativ ist, wird eine leere Zeichenkette zurückgegeben.

MsgBox, % Ln(1.2) ; Gibt 0.182322 zurück

Max [v1.1.27+]

Gibt den höchsten Wert von einer oder mehreren Zahlen zurück.

Wert := Max(Zahl1 , Zahl2, ...)

Wenn einer der Eingabewerte nicht-numerisch ist, wird eine leere Zeichenkette zurückgegeben.

MsgBox, % Max(2.11, -2, 0) ; Gibt 2.11 zurück

Sie können auch einen variadischen Parameter angeben, um mehrere Werte innerhalb eines Arrays zu vergleichen. Zum Beispiel:

array := [1, 2, 3, 4]
MsgBox, % Max(array*) ; Gibt 4 zurück

Min [v1.1.27+]

Gibt den niedrigsten Wert von einer oder mehreren Zahlen zurück.

Wert := Min(Zahl1 , Zahl2, ...)

Wenn einer der Eingabewerte nicht-numerisch ist, wird eine leere Zeichenkette zurückgegeben.

MsgBox, % Min(2.11, -2, 0) ; Gibt -2 zurück

Sie können auch einen variadischen Parameter angeben, um mehrere Werte innerhalb eines Arrays zu vergleichen. Zum Beispiel:

array := [1, 2, 3, 4]
MsgBox, % Min(array*) ; Gibt 1 zurück

Mod

Modulo. Gibt den Rest aus einer Division zweier Zahlen zurück.

Wert := Mod(Dividend, Divisor)

Das Vorzeichen des Ergebnisses entspricht dem Vorzeichen des ersten Parameters. Wenn einer der beiden Parameter eine Floating-Point-Zahl ist, wird das Ergebnis ebenfalls eine Floating-Point-Zahl sein. Ist der zweite Parameter eine 0, gibt die Funktion ein leeres Ergebnis (leere Zeichenkette) zurück.

MsgBox, % Mod(7.5, 2) ; Gibt 1.5 zurück (2 x 3 + 1.5)

Round

Gibt eine bestimmte Zahl zurück, gerundet auf N Dezimalstellen.

Wert := Round(Zahl , N)

Wenn N weggelassen wird oder 0 ist, wird Zahl auf den nächsten Integer gerundet:

MsgBox, % Round(3.14)    ; Gibt 3 zurück

Ist N eine positive Zahl, wird Zahl auf N Dezimalstellen gerundet:

MsgBox, % Round(3.14, 1) ; Gibt 3.1 zurück

Ist N negativ, wird Zahl auf N Stellen nach links gerundet:

MsgBox, % Round(345, -1) ; Gibt 350 zurück
MsgBox, % Round(345, -2) ; Gibt 300 zurück

Im Gegensatz zu Transform Round hat das Ergebnis kein .000-Suffix, wenn N weggelassen wird oder kleiner als 1 ist. [v1.0.44.01+]: Ein Wert in N, der größer als 0 ist, zeigt genau N Dezimalstellen an, anstatt SetFormat zu berücksichtigen. Um das zu verhindern, führen Sie eine weitere mathematische Operation am Rückgabewert von Round() durch; zum Beispiel: Round(3.333, 1)+0.

Sqrt

Gibt die Quadratwurzel einer bestimmten Zahl zurück.

Wert := Sqrt(Zahl)

Das Ergebnis ist eine Floating-Point-Zahl. Wenn Zahl negativ ist, gibt die Funktion ein leeres Ergebnis (leere Zeichenkette) zurück.

MsgBox, % Sqrt(16) ; Gibt 4 zurück

Trigonometrie

Hinweis: Um einen Bogenmaßwert in Grad umzurechnen, multiplizieren Sie ihn mit 180/pi (ungefähr 57.29578). Um einen Gradwert in Bogenmaß umzurechnen, multiplizieren Sie ihn mit pi/180 (ungefähr 0.01745329252). Der Wert von pi (ungefähr 3.141592653589793) ist das 4-fache von Arkustangens 1.

Sin

Gibt den trigonometrischen Sinus einer bestimmten Zahl zurück.

Wert := Sin(Zahl)

Zahl muss als Bogenmaß angegeben werden.

MsgBox, % Sin(1.2) ; Gibt 0.932039 zurück

Cos

Gibt den trigonometrischen Kosinus einer bestimmten Zahl zurück.

Wert := Cos(Zahl)

Zahl muss als Bogenmaß angegeben werden.

MsgBox, % Cos(1.2) ; Gibt 0.362358 zurück

Tan

Gibt den trigonometrischen Tangens einer bestimmten Zahl zurück.

Wert := Tan(Zahl)

Zahl muss als Bogenmaß angegeben werden.

MsgBox, % Tan(1.2) ; Gibt 2.572152 zurück

ASin

Gibt den Arkussinus (die Zahl, deren Sinus die angegebene Zahl ist) als Bogenmaß zurück.

Wert := ASin(Zahl)

Wenn Zahl kleiner als -1 oder größer als 1 ist, gibt die Funktion ein leeres Ergebnis (leere Zeichenkette) zurück.

MsgBox, % ASin(0.2) ; Gibt 0.201358 zurück

ACos

Gibt den Arkuskosinus (die Zahl, deren Kosinus die angegebene Zahl ist) als Bogenmaß zurück.

Wert := ACos(Zahl)

Wenn Zahl kleiner als -1 oder größer als 1 ist, gibt die Funktion ein leeres Ergebnis (leere Zeichenkette) zurück.

MsgBox, % ACos(0.2) ; Gibt 1.369438 zurück

ATan

Gibt den Arkustangens (die Zahl, deren Tangens die angegebene Zahl ist) als Bogenmaß zurück.

Wert := ATan(Zahl)
MsgBox, % ATan(1.2) ; Gibt 0.876058 zurück

Fehlerbehandlung

Ungültige Operationen, wie das Dividieren durch 0, werden in der Regel ein leeres Ergebnis (leere Zeichenkette) erzeugen.

Abs, Max, Min und Mod geben eine leere Zeichenkette zurück, falls einer ihrer eingehenden Parameter nicht-numerisch ist. Da die meisten mathematischen Funktionen keine strikte Typenprüfung durchführen, werden nicht-numerische Werte häufig als Null oder eine andere Nummer behandelt. Zum Beispiel würde Round("1.0foo") eine 1 zurückgeben. In AutoHotkey v2 soll dieses Verhalten geändert werden.