Bei Berechnungen mit Multiplikationen oder Divisionen rundet Analytics das Ergebnis auf die größere Anzahl an Dezimalstellen der beiden Operanden. Die Rundungsmethode hängt mit der Festkomma-Arithmetik zusammen, die Analytics für die Auswertung der meisten numerischen Ausdrücke verwendet.
Für Ausrücke mit mehreren Operanden (wie a*b/c) wird in jeder Phase des Ausdrucks gerundet. Dies beginnt mit der ersten ausgewerteten Phase und wird wiederholt, bis der Ausdruck vollständig ausgewertet wurde.
Hinweis
Einer der häufigsten Gründe für Berechnungsfehler ergibt sich aus der fehlenden Kenntnis, wie Analytics rundet.
Festkomma-Arithmetik
Die Rundungen in Analytics hängen mit der Festkomma-Arithmetik zusammen, die Analytics für numerische Operationen (mit Ausnahme von Finanzfunktionen) verwendet. Analytics verwendet Festkomma-Arithmetik aus zwei Gründen:
- Erhöhung der Verarbeitungsgeschwindigkeit
- Möglichkeit der Steuerung der Dezimalstellen und der Rundung durch den Benutzer
Runden bei Multiplikation
Betrachten Sie den Ausdruck 1,1 * 1,1. Die korrekte Antwort ist 1,21. Analytics rundet das Ergebnis jedoch auf eine Dezimalstelle, weil dies die größere Anzahl an Dezimalstellen der beiden Operanden ist.
1,1 * 1,1 = 1,2
Falls einer der Operanden zwei Dezimalstellen aufweist, rundet Analytics den dezimalen Teil des Ergebnisses auf die größere Anzahl an Dezimalstellen der beiden Operanden. In diesem Beispiel ist keine Rundung erforderlich:
1,10 * 1,1 = 1,21
Runden bei Divisionen
Betrachten Sie den Ausdruck 7/3. Die korrekte Antwort ist 2,333... Analytics jedoch rundet das Ergebnis auf null Dezimalstellen, da keiner der Operanden Dezimalstellen aufweist.
7/3 = 2
Falls ein oder beide Operanden Dezimalstellen aufweisen, rundet Analytics den dezimalen Teil des Ergebnisses auf die größere Anzahl an Dezimalstellen der beiden Operanden:
7/3,00 = 2,33
7,000/3,00 = 2,333
Dezimalstellen hinzufügen, um Rundung zu kontrollieren
Um die Rundung zu kontrollieren und eine gewünschte dezimale Genauigkeit zu erreichen, ist es am einfachsten, einen Ausdruck mit 1, gefolgt von der Anzahl der für die Genauigkeit des Ergebnisses gewünschten Dezimalstellen zu multiplizieren. Multiplizieren Sie beispielsweise mit 1,0000, um sicherzustellen, dass ein Ergebnis auf vier Dezimalstellen genau ist.
Beispiel
Problem
In den folgenden Ausdrücken rundet Analytics das Ergebnis auf zwei Dezimalstellen, was für unsere Anforderungen nicht genau genug ist.
7,21 * 2,33 = 16,80
7,21 / 2,33 = 3,09
Lösung
Um die Genauigkeit des Ergebnisses zu erhöhen, multiplizieren Sie es mit 1 und hängen die Anzahl der Dezimalstellen entsprechend der gewünschten Genauigkeit an:
1,0000 * 7,21 * 2,33 = 16,7993
1,000000 * 7,21 / 2,33 = 3,094421
Achtung
Stellen Sie eine 1 an den Anfang eines Ausdrucks. Wenn Sie die 1 anderweitig positionieren, funktioniert die Genauigkeitsanpassung möglicherweise nicht, weil die Genauigkeit der ersten beiden auszuwertenden Operanden bereits eine Rundung verursacht hat:
7,21 * 2,33 * 1,0000 = 16,8000
7,21 / 2,33 * 1,000000 = 3,090000
Vorsicht bei der Verwendung von Klammern
Seien Sie mit der Verwendung von Klammern zur Angabe der Reihenfolge mathematischer Operationen vorsichtig. Falls Sie Klammern verwenden, funktioniert die Genauigkeitsanpassung möglicherweise nicht, weil die Genauigkeit der Operanden innerhalb der Klammern bereits eine Rundung verursacht hat:
1,0000 * (7,21 * 2,33) = 16,8000
Die Aufnahme der 1 in den Klammern kann dieses Problem lösen:
(1,0000 * 7,21 * 2,33) = 16,7993
Rundungsverhalten in Ausdrücken mit mehreren Operanden
Unabhängig von der Anzahl der Operanden eines Ausdrucks funktionieren das Rundungsverhalten und die dezimale Genauigkeit stets identisch. Analytics rundet das Ergebnis auf die größere Anzahl an Dezimalstellen der beiden Operanden, während es Ausdrücke paarweise auswertet.
Aufgrund der kumulierten Rundung in einem Ausdruck mit mehreren Operanden gilt für das Ergebnis des Ausdrucks aber die dezimale Genauigkeit, die durch die ersten beiden auszuwertenden Operanden festgelegt wird.
Eine weitere Eigenschaft der kumulierten Rundung besteht darin, dass die dezimale Genauigkeit in jeder Phase eines Ausdrucks mit mehreren Operanden stärker abnimmt.
Beispiel einer Genauigkeit mit zwei Dezimalstellen
Die folgende Tabelle veranschaulicht, wie Analytics rundet, während es den folgenden Ausdruck mit mehreren Operanden berechnet.
1,1 * 1,12 * 1,123 * 1,1234 = 1,5514
Die größere Anzahl Dezimalstellen in der ersten Auswertungsphase des Ausdrucks ist 2 (1,1 * 1,12). Diese Genauigkeit von zwei Dezimalstellen besteht im restlichen Ausdruck mit mehreren Operanden fort (angedeutet durch die roten Ziffern).
Die Spalte Ergebnisunterschied zeigt, wie der kumulierte Genauigkeitsverlust in jeder späteren Phase der Auswertung zunimmt.
Analytics-Berechnungen (in Auswertungsreihenfolge) |
Analytics-Ergebnis (gerundet) |
Nicht gerundete Berechnungen (in Auswertungsreihenfolge) |
Nicht gerundetes Ergebnis |
Ergebnisunterschied |
---|---|---|---|---|
1,1 * 1,12 | 1,23 | 1,1 * 1,12 | 1,232 | 0,002 |
1,23 * 1,123 | 1,381 | 1,232 * 1,123 | 1,383536 | 0,002536 |
1,381 * 1,1234 | 1,5514 | 1,383536 * 1,1234 | 1,5542643424 | 0,0028643424 |
Präzisere Betrachtung der Genauigkeit
In der Spalte ACL-Ergebnis (gerundet) sind alle Dezimalstellen nach den ersten beiden im Vergleich zum entsprechenden nicht gerundeten Ergebnis ungenau. Das Ausmaß der Ungenauigkeit ist wahrscheinlich Ihre größte Sorge, wenn Sie numerische Berechnungen im Rahmen einer Datenanalyse durchführen.
Die gerundeten Ergebnisse sind im Rahmen ihrer spezifischen paarweisen Berechnungen nicht ungenau. 1,23 * 1,123 = 1,38129 wird beispielsweise entsprechend den Regeln auf drei Dezimalstellen gerundet, und das Ergebnis ist 1,381. 1,23 wurde aber zuvor von 1,232 gerundet, was bedeutet, dass die spezifische paarweise Berechnung bereits eine gewisse Ungenauigkeit aufweist.
Beispiel einer Genauigkeit mit fünf Dezimalstellen
Die folgende Tabelle zeigt, wie Analytics rundet, nachdem 1,00000 zur Festlegung einer Genauigkeit von fünf Dezimalstellen hinzugefügt wurde:
1,00000 * 1,1 * 1,12 * 1,123 * 1,1234 = 1,55427
Die größere Anzahl Dezimalstellen in der ersten Auswertungsphase des Ausdrucks ist 5 (1,00000 * 1,1). Diese Genauigkeit von fünf Dezimalstellen besteht im restlichen Ausdruck mit mehreren Operanden fort (angedeutet durch die roten Ziffern).
Analytics-Berechnungen (in Auswertungsreihenfolge) |
Analytics-Ergebnis (gerundet) |
Nicht gerundete Berechnungen (in Auswertungsreihenfolge) |
Nicht gerundetes Ergebnis |
Ergebnisunterschied |
---|---|---|---|---|
1,00000 * 1,1 | 1,10000 | 1,00000 * 1,1 | 1,10000 | 0,00000 |
1,10000 * 1,12 | 1,23200 | 1,10000 * 1,12 | 1,23200 | 0,00000 |
1,23200 * 1,123 | 1,38354 | 1,23200 * 1,123 | 1,383536 | 0,000004 |
1,38354 * 1,1234 | 1,55427 | 1,383536 * 1,1234 | 1,5542643424 | 0,0000056576 |
Spezifizieren der Reihenfolge der Operationen
Die Verwendung der Klammern spielt eine wesentliche Rolle bei der Bestimmung des Präzisionsgrades, der bei einer Berechnung erhalten wird. Seien Sie mit der Verwendung von Klammern zur Änderung der normalen Reihenfolge der mathematischen Operationen vorsichtig.
Berechnung von Zinsen für einen Tag
Das Szenario
Sie müssen die Zinsen für einen Tag bei einer Summe von €100.000 und einem Jahreszinssatz von 12% berechnen.
Ein Ansatz
Sie könnten zuerst den Zinssatz pro Tag berechnen und diesen Tageszinssatz dann mit 100.000 multiplizieren. Dieser Ansatz ist aufgrund der Rundung jedoch problematisch.
100000 * (0,12/365) = 0,00
Analytics dividiert 0,12 zuerst durch 365. Auf Basis der Rundungsregeln in Analytics ergibt dies 0,00. Das tatsächliche Ergebnis lautet 0,00032876712... Weil es jedoch auf zwei Dezimalstellen gerundet wird, gehen alle folgenden Ziffern verloren.
Das gerundete Ergebnis wird dann mit 100.000 multipliziert. Dies ergibt 0,00, obwohl die richtige Antwort 32,876712 lautet...
Ein alternativer Ansatz
Sie könnten zuerst den gesamten Zinsbetrag des Jahres berechnen und diesen dann durch 365 teilen. Durch diesen alternativen Ansatz werden Rundungsprobleme vermieden.
100000 * 0,12/365 = 32,88
Nach der Entfernung der Klammern sind die Ergebnisse in jeder Phase der Berechnung größer als 1. Dadurch werden dezimale Rundungsprobleme vermieden, und die Antwort ist auf den Cent genau richtig (zwei Dezimalstellen).
Funktionsweise der dezimalen Genauigkeit ändern
Mit Hilfe des Befehls SET MATH können Sie die Funktionsweise der dezimalen Genauigkeit in numerischen Ausdrücken ändern. Standardmäßig verwendet Analytics die größere bzw. maximale Anzahl von Dezimalstellen bei der Auswertung von zwei Operanden. Die Verwendung der maximalen Anzahl stellt die bestmögliche Präzision in jeder Phase eines Ausdrucks sicher.
Wenn Sie SET MATH in der Befehlszeile oder in einem Analytics-Skript verwenden, wird das Standardverhalten für die Dauer der Analytics-Sitzung geändert. In der folgenden Zusammenfassung der Optionen werden die unterschiedlichen Ergebnisse für den Ausdruck 1,275 * 1,3 dargestellt. Das tatsächliche ungerundete Ergebnis beläuft sich auf 1,6575.
Befehl |
Beschreibung |
Ergebnis von 1,275 * 1,3 |
---|---|---|
SET MATH FIRST | Die Anzahl der Dezimalstellen des ersten von zwei Operanden verwenden | 1,658 |
SET MATH LAST | Die Anzahl der Dezimalstellen des letzten von zwei Operanden verwenden | 1,7 |
SET MATH MIN | Die Mindestanzahl von Dezimalstellen der zwei Operanden verwenden | 1,7 |
SET MATH MAX
Standard |
Die maximale Anzahl von Dezimalstellen der zwei Operanden verwenden | 1,658 |
Detaillierte Informationen über SET MATH finden Sie unter SET-Befehl. |