Numerische Funktionen

Numerische Funktionen führen Operationen mit literalen oder datengesteuerten Zahlen durch und geben numerische Werte zurück (mit Ausnahme von FormatNumber, die eine Zeichenkette zurückgibt). Diese Funktionen sind wesentlich für Berechnungen, Rundungen, die Formatierung von Zahlen zur Anzeige und die Erzeugung von Zufallswerten.

Wichtig: Numerische Funktionen in QLingo können maximal 14-stellige Zahlen verarbeiten. Bei der Verwendung von 15-stelligen Zahlen (oder mehr) können falsche Ergebnisse ausgegeben werden.

ABS-Funktion

Die Funktion ABS gibt den Absolutbetrag einer Zahl zurück, d. h. ihren Abstand von Null. Das Ergebnis ist immer eine positive Zahl (oder Null).

Diese Funktion gibt den Datentyp Zahl zurück.

Syntax

ABS(exprAsNumber)

Parameter

Beschreibung

exprAsNumber

Erforderlich. Ein numerischer Ausdruck, dessen Absolutbetrag zurückgegeben werden soll.

Beispiele

  1. Den Absolutbetrag positiver und negativer Zahlen ermitteln:

    ABS(5)

    Ergebnis: 5

    ABS(-5)

    Ergebnis: 5

  2. Die absolute Veränderung der Kundenzufriedenheit zwischen zwei Umfragen berechnen:

    ABS(|->[survey 2] - |->[survey 1])

    Wenn survey 1 = 85 und survey 2 = 72:

    Ergebnis: 13

  3. Die Differenz zwischen zwei Werten unabhängig davon ermitteln, welcher größer ist:

    ABS(|->[Actual] - |->[Target])

    Wenn Actual = 150 und Target = 200:

    Ergebnis: 50

Ceil-Funktion

Die Funktion Ceil gibt die kleinste ganze Zahl zurück, die größer oder gleich einer Zahl ist. Diese Funktion rundet Dezimalwerte auf die nächste ganze Zahl auf.

Diese Funktion gibt den Datentyp Zahl zurück (nur ganze Zahlen).

Syntax

Ceil(exprAsNumber)

Parameter

Beschreibung

exprAsNumber

Erforderlich. Ein numerischer Ausdruck, der auf die nächste ganze Zahl aufgerundet werden soll.

Beispiele

  1. Positive Dezimalzahlen aufrunden:

    Ceil(3.14159)

    Ergebnis: 4

    Ceil(3.0)

    Ergebnis: 3

  2. Negative Dezimalzahlen aufrunden (rundet Richtung Null):

    Ceil(-3.14159)

    Ergebnis: -3

    Ceil(-3.9)

    Ergebnis: -3

  3. 10 % eines Betrags berechnen und auf die nächste ganze Zahl aufrunden:

    Ceil(|->[opening amount] / 100 * 10)

    Wenn opening amount = 253:

    Ergebnis: 26

  4. Die Mindestanzahl der Kartons berechnen, die zum Versand von Artikeln benötigt werden:

    Ceil(|->[ItemCount] / 12)

    Wenn ItemCount = 25 (12 Artikel pro Karton):

    Ergebnis: 3

Floor-Funktion

Die Funktion Floor gibt die größte ganze Zahl zurück, die kleiner oder gleich einer Zahl ist. Diese Funktion rundet Dezimalwerte auf die nächstniedrigere ganze Zahl ab.

Diese Funktion gibt den Datentyp Zahl zurück (nur ganze Zahlen).

Syntax

Floor(exprAsNumber)

Parameter

Beschreibung

exprAsNumber

Erforderlich. Ein numerischer Ausdruck, der auf die nächste ganze Zahl abgerundet werden soll.

Beispiele

  1. Positive Dezimalzahlen abrunden:

    Floor(3.14159)

    Ergebnis: 3

    Floor(3.9)

    Ergebnis: 3

  2. Negative Dezimalzahlen abrunden (rundet weg von Null):

    Floor(-3.14159)

    Ergebnis: -4

    Floor(-3.1)

    Ergebnis: -4

  3. Das Alter anhand eines Geburtsdatums berechnen, indem das Ergebnis der Funktion Age abgerundet wird:

    Floor(Age(AsDate(|->[DOB])))

    Wenn Age() 34,7 Jahre zurückgibt:

    Ergebnis: 34

  4. Vollständige Sets aus einer Gesamtmenge berechnen:

    Floor(|->[TotalUnits] / 6)

    Wenn TotalUnits = 20 (6 Einheiten pro Set):

    Ergebnis: 3

FormatNumber-Funktion

Die Funktion FormatNumber formatiert eine Zahl gemäß einem angegebenen Muster. Diese Funktion ist nützlich für die Anzeige von Zahlen als Währung, Telefonnummern, Kontonummern mit führenden Nullen oder in jedem anderen benutzerdefinierten Format.

Diese Funktion gibt den Datentyp Zeichenkette zurück.

Hinweis: Da FormatNumber eine Zeichenkette zurückgibt, sollte sie in der Regel als letzte Funktion in einem Ausdruck angewendet werden, wenn keine weiteren numerischen Berechnungen erforderlich sind.

Syntax

FormatNumber(exprAsNumber, formatString [, useCommaDecimalAsBoolean])

Parameter

Beschreibung

exprAsNumber

Erforderlich. Der zu formatierende numerische Wert.

formatString

Erforderlich. Eine Musterzeichenkette, die das Ausgabeformat definiert. Verwenden Sie # für optionale Ziffern (werden weggelassen, wenn Null), 0 für erforderliche Ziffern (werden bei Bedarf als Null angezeigt) und . oder , für das Dezimaltrennzeichen.

useCommaDecimalAsBoolean

Optional. Auf True setzen, um ein Komma als Dezimaltrennzeichen zu verwenden (europäisches Format). Standardwert ist False (Punkt als Dezimaltrennzeichen).

Formatmusterzeichen

Zeichen

Beschreibung

#

Optionaler Ziffernplatzhalter. Zeigt die Ziffer an, wenn vorhanden; andernfalls wird nichts angezeigt.

0

Erforderlicher Ziffernplatzhalter. Zeigt die Ziffer an, wenn vorhanden; andernfalls wird Null angezeigt.

.

Dezimaltrennzeichen (oder Tausendertrennzeichen, wenn useCommaDecimal True ist).

,

Tausendertrennzeichen (oder Dezimaltrennzeichen, wenn useCommaDecimal True ist).

Hinweis: Wenn die zu formatierende Zahl mehr Ziffern hat als der Formatierungsausdruck, werden führende Ziffern abgeschnitten. Stellen Sie sicher, dass Ihr Formatmuster genügend Ziffernplatzhalter enthält, um die größten erwarteten Werte aufzunehmen.

Beispiele

  1. Eine Zahl als Währung mit Tausendertrennzeichen formatieren:

    FormatNumber(1234567.89, "$###,###,###.00")

    Ergebnis: "$1,234,567.89"

  2. Eine Telefonnummer aus einem numerischen Wert formatieren:

    FormatNumber(CleanNumber(|->[phone]), "(###) ###-####")

    Wenn phone = "5551234567":

    Ergebnis: "(555) 123-4567"

  3. Eine Zahl mit führenden Nullen auffüllen:

    FormatNumber(|->[contactID], "00000")

    Wenn contactID = 1:

    Ergebnis: "00001"

    Wenn contactID = 123:

    Ergebnis: "00123"

  4. Eine Dezimalzahl mit festen Dezimalstellen formatieren:

    FormatNumber(42.5, "#.00")

    Ergebnis: "2.50"

    FormatNumber(42.5, "##.00")

    Ergebnis: "42.50"

  5. Formatierung mit europäischer Dezimalnotation (Komma als Dezimaltrennzeichen):

    FormatNumber(1234.56, "###.###,00", True)

    Ergebnis: "1.234,56"

  6. Einen Preis mit Währungssymbol formatieren:

    FormatNumber(|->[Price], "$#,##0.00")

    Wenn Price = 99.9:

    Ergebnis: "$99.90"

  7. Eine Zahl formatieren, die mehr Ziffern hat als vom Formatierungsausdruck erwartet:

    FormatNumber(12345, "0000")

    Ergebnis: "2345"

    Das Format "0000" hat nur vier Ziffernplatzhalter, sodass die führende 1 abgeschnitten wird.

Rand-Funktion

Die Funktion Rand erzeugt Zufallszahlen. Wenn der Parameter größer als 1 ist, gibt sie eine zufällige ganze Zahl von 0 bis (ausschließlich) dem Parameterwert zurück. Wenn der Parameter 1 ist, gibt sie eine zufällige Dezimalzahl zwischen 0 und 1 zurück.

Diese Funktion gibt den Datentyp Zahl zurück.

Syntax

Rand(expression)

Parameter

Beschreibung

expression

Erforderlich. Wenn größer als 1, gibt die Obergrenze (exklusiv) für die Erzeugung zufälliger ganzer Zahlen an. Wenn gleich 1, wird eine zufällige Dezimalzahl zwischen 0 und 1 erzeugt.

Verhalten

Parameterwert

Ergebnis

Rand(n) wobei n > 1

Gibt eine zufällige ganze Zahl von 0 bis n-1 (einschließlich) zurück

Rand(1)

Gibt eine zufällige Gleitkommazahl zwischen 0 und 1 zurück

Beispiele

  1. Eine zufällige ganze Zahl von 0 bis 4 erzeugen:

    Rand(5)

    Ergebnis: 0, 1, 2, 3 oder 4 (zufällig)

  2. Eine zufällige ganze Zahl von 1 bis 5 erzeugen (1 addieren, um den Bereich zu verschieben):

    Rand(5) + 1

    Ergebnis: 1, 2, 3, 4 oder 5 (zufällig)

  3. Eine zufällige Dezimalzahl zwischen 0 und 1 erzeugen:

    Rand(1)

    Ergebnis: Ein Dezimalwert wie 0.0344, 0.7821 usw.

  4. Mit einer Switch-Anweisung zufällig eine von mehreren Textoptionen auswählen:

    Switch(Rand(3))
    {
    case 0:
    "Thank you for your loyalty!"
    case 1:
    "We appreciate your business!"
    case 2:
    "You're a valued customer!"
    }

    Ergebnis: Eine der drei Meldungen, zufällig ausgewählt

  5. Einen zufälligen Prozentwert erzeugen:

    Round(Rand(1) * 100, 0)

    Ergebnis: Eine zufällige ganze Zahl von 0 bis 100

  6. Empfänger zufällig Testgruppen zuweisen (A/B-Testing):

    If(Rand(2) = 0) {"Group A"} else {"Group B"}

    Ergebnis: "Group A" oder "Group B" (zufällig, ungefähr 50/50)

Hinweise

  • Zufallswerte werden zum Zeitpunkt der Komposition erzeugt. Jeder Empfänger in einem Auftrag erhält seinen eigenen Zufallswert. Wenn jedoch dasselbe ADOR für einen einzelnen Empfänger mehrfach ausgewertet wird, gibt es denselben Zufallswert zurück.

  • Bei der Erzeugung von Zufallswerten für eine große Anzahl von Empfängern mit einem kleinen Bereich von Zufallswerten erhalten einige Empfänger denselben Zufallswert.

Round-Funktion

Die Funktion Round rundet eine Zahl auf eine angegebene Anzahl von Dezimalstellen unter Verwendung von Standardrundungsregeln (0-4 wird abgerundet, 5-9 wird aufgerundet).

Diese Funktion gibt den Datentyp Zahl zurück.

Syntax

Round(exprAsNumber [, decimalPlaces])

Parameter

Beschreibung

exprAsNumber

Erforderlich. Der zu rundende numerische Wert.

decimalPlaces

Optional. Die Anzahl der Dezimalstellen, auf die gerundet werden soll. Standardwert ist 0 (rundet auf die nächste ganze Zahl), wenn nicht angegeben.

Beispiele

  1. Auf die nächste ganze Zahl runden (Standardverhalten):

    Round(3.14159)

    Ergebnis: 3

    Round(3.5)

    Ergebnis: 4

    Round(3.49)

    Ergebnis: 3

  2. Negative Zahlen runden:

    Round(-3.14159)

    Ergebnis: -3

    Round(-3.5)

    Ergebnis: -4

  3. Auf eine bestimmte Anzahl von Dezimalstellen runden:

    Round(3.14159, 2)

    Ergebnis: 3.14

    Round(3.14159, 4)

    Ergebnis: 3.1416

    Round(-3.14159, 4)

    Ergebnis: -3.1416

  4. Umsatzsteuer berechnen und auf 2 Dezimalstellen runden:

    Round(|->[last purchase] / 100 * 7, 2)

    Wenn last purchase = 49.99 und der Steuersatz 7 % beträgt:

    Ergebnis: 3.50

  5. Eine berechnete Summe zur Anzeige runden:

    Round(|->[Subtotal] + |->[Tax] + |->[Shipping], 2)

    Wenn Subtotal = 99.99, Tax = 8.25, Shipping = 5.99:

    Ergebnis: 114.23

  6. Auf eine Dezimalstelle runden für eine Bewertungsanzeige:

    Round(|->[AverageScore], 1)

    Wenn AverageScore = 4.567:

    Ergebnis: 4.6

Mehr Themen