Home HomeXLimits - Hauptseite


[xllimit5]  Genauigkeit bei Zahlen und kleinste/grösste zulässige positive/negative Zahl

Auf dieser Seite möchte ich ein paar interessante Dinge zu Zahlen, Dezimalstellen und benutzerdefinierten Zahlenformaten vorstellen.

Inhalt
» Genauigkeit bei Zahlen
» Grösste positive Zahl
» Zahlen mit mehr als 15 Dezimalstellen
» Zahlen mit mehr als 30 Dezimalstellen
» Zahlen mit mehr als 127 Dezimalstellen
» Zahlen mit mehr als 300 Dezimalstellen (maximal 307 Stellen)
» Benutzerdefiniertes Zahlenformat mit mehr als 15 Stellen
» Internetseiten mit Formeln zum Thema Zahlen
» Microsoft Knowledge Base-Artikel zum Thema Zahlen und Rechnen


Genauigkeit bei Zahlen

Die Spezifikation von 15 Stellen für die Genauigkeit bei Zahlen ist gilt für sämtliche Excelversionen. Als Ergänzung sollte jedoch erwähnt werden, dass 15 Stellen nicht bedeutet, dass eine Zahl maximal 15 Stellen beziehungsweise eine Dezimalzahl maximal 15 Nachkommastellen besitzen kann. Eine Zahl kann nämlich bis zu 127 Ziffern nach dem Komma aufweisen; allerdings werden nur 15 Nachkommastellen beim Rechnen berücksichtigt.

To Top

Grösste positive Zahl

In einem etwas älteren Beitrag im Excel-Forum von Spotlight.de habe ich mehrere interessante Hinweise gefunden, wie die grösste erlaubte Zahl lautet bzw. wie sie sich erzeugen lässt (Besonderen Dank an den Forum-User namens Jens).

 

Die grösste Zahl, die ohne Formel eingegeben werden kann, ist 1E+308.

Geben Sie dazu

  =10^308

in eine Zelle ein.

 

Die grösste Zahl mit einer einfachen Formel ist 1.79769313486231E+308.

Geben Sie für diese Zahl

  =1.79769313486231*10^308

in eine Zelle ein.

Wenn man für die 14. Nachkommastelle eine 2 statt der Zahl 1 schreibt, d.h.

  =1.79769313486232*10^308

eingibt, erscheint der Fehlerwert "#ZAHL!". Daraus kann man schliessen, dass die Zahl 1.79769313486231E+308 die grösste erlaubte Zahl ist (Anmerkung des Autors: Was allerdings nicht der Fall ist; siehe weiter unten).

 

Wenn man eine Berechnung bzw. eine etwas kompliziertere Formel verwendet, kann man sogar die Zahl 1.79769313486232E+308 erzeugen.

Dies erreicht man mit der Formel

  =1.79769313486231*10^308*(1+3.21970098152157E-15)

oder auch mit der höchst interessanten Matrixformel

  {=SUMME(2^(ZEILE(971:1023)))}

 

Eine grössere Zahl als 1.79769313486232E+308 konnte bisher noch nicht erzeugt werden.

To Top

Zahlen mit mehr als 15 Dezimalstellen

Die Zahl "0.123456789012345000000000000000", welche 30 Nachkommastellen besitzt, kann problemlos in eine Zelle eingegeben und auch mit allen Ziffern dargestellt werden. Stellen Sie dazu im Zellen-Dialogfenster (Menübefehl Format/Zellen) das Zahlenformat auf "Zahl" und geben Sie im Feld "Dezimalstellen" den Wert 30 ein. Es ist nicht möglich, im Feld "Dezimalstellen" einen grösseren Wert als 30 einzustellen.

To Top

Zahlen mit mehr als 30 Dezimalstellen

Es gibt einen einfachen Trick, wie man bis zu 127 Dezimalstellen festlegen kann:
Auf der Format-Symbolleiste gibt es die Schaltfläche Symbolleisten-Schaltfläche "Dezimalstelle hinzufügen" zum Hinzufügen von Dezimalstellen. Klicken Sie so lange wiederholt auf die Schaltfläche, bis die Fehlermeldung "Zahlenformat ist zu lang" angezeigt wird.

Fehlermeldung "Zahlenformat ist zu lang"
Abbildung: Fehlermeldung "Zahlenformat ist zu lang"

Die Fehlermeldung erscheint sobald die 128-ste Dezimalstelle hinzugefügt wird (und nicht schon bei der 31. Dezimalstelle), was somit bedeutet, dass die selektierte Zelle ein Zahlenformat mit 127 Dezimalstellen besitzt. So weit so gut. Öffnen Sie nun das Dialogfenster "Zellen" (Menübefehl Format/Zellen). Auf der Registerseite "Zahlen" steht im Feld "Dezimalstellen" die Zahl 127 (siehe nächste Abbildung).

Zellen-Dialogfenster: Zahl mit 127 Dezimalstellen
Abbildung: Dialogfenster "Zellen": Zahl mit 127 Dezimalstellen

Klickt man auf die Pfeil oben- oder Pfeil unten-Schaltfläche, so wird sofort der Wert 30 angezeigt. Das ist schon mal ungewöhnlich, weil 127 Dezimalstellen eigentlich erlaubt sein müssten. Noch ungewöhnlicher ist jedoch dies: Wenn Sie die Zahl 127 in dem Feld stehen lassen und dann mit OK das Dialogfenster schliessen möchten, so erscheint die Fehlermeldung "Die eingegebene Zahl kann nicht verwendet werden. Es wird wahrscheinlich eine Ganzzahl oder eine Dezimalzahl benötigt.", wodurch das Fenster nicht geschlossen werden kann.

Aenderungsprotokoll-Zahl_nicht-verwendbar.gif (3165 Byte)
Abbildung: Fehlermeldung "Die eingegebene Zahl kann nicht verwendet werden"

Die gleiche Fehlermeldung erscheint auch beim Anklicken einer anderen Registerseite (Ausrichtung, Schrift usw.). Sie wird immer dann angezeigt, wenn das Dezimalstellen-Feld einen Wert grösser 30 enthält. Angenommen Sie möchten Tausender-Trennzeichen verwenden, so können Sie zwar die Option "1000er-Trennzeichen verwenden" aktivieren, die geänderte Einstellung jedoch nicht mit OK übernehmen. Aber auch dafür gibt es einen Trick: Aktivieren Sie die Option und wählen dann das Zahlenformat "Benutzerdefiniert" aus. Bei diesem Zahlenformat erscheint beim Klicken von OK keine Fehlermeldung, und die Einstellung wird korrekt angewendet.

Dass sich Microsoft Excel derart gegen eine Anzahl von mehr als 30 Dezimalstellen wehrt, ist nicht nachvollziehbar (Anmerkung des Autors: Das ist meine persönliche Meinung). Wenn man nämlich in die Online-Hilfe schaut, so findet man in der Beschreibung der FEST-Tabellenfunktion diesen Satz (Zitat):

FEST-Tabellenfunktion: Argument "Dezimalstellen"
In Microsoft Excel können Zahlen maximal 15 gültige Ziffern haben, aber der grösste zulässige Wert für Dezimalstellen ist 127.

To Top

Zahlen mit mehr als 127 Dezimalstellen

Es ist sogar möglich, mehr als 127 Dezimalstellen zu benutzen. Im Optionen-Dialog kann man auf der Registerseite "Bearbeiten" im Feld "Stellenanzahl" eine feste Anzahl Dezimalstellen definieren.

Optionen-Dialog: Feste Dezimalstelle setzen/Stellenanzahl
Abbildung: Optionen-Dialog: Feste Dezimalstelle setzen / Stellenanzahl

Anhand dieses Feldes können Sie mehr als 127 Stellen festlegen, wobei Werte zwischen -300 und 300 erlaubt sind. Die Eingabe einer Zahl ausserhalb dieses Bereiches führt beim Anklicken von OK oder einer anderen Registerseite zur Fehlermeldung "Zahl muss zwischen -300 und 300 liegen":

Fehlermeldung "Zahl muss zwischen -300 und 300 liegen"
Abbildung: Fehlermeldung "Zahl muss zwischen -300 und 300 liegen"

Auf diese Weise können Sie erreichen, dass beispielsweise beim Eingeben einer Zahl in eine Zelle die Zahl automatisch konvertiert wird. Bei einer festen Stellenanzahl von 300 wird aus der Zahl 1 die Zahl 1E-300. Bei -300 wird aus der Zahl 1 die Zahl 1E+300.

Übrigens besitzt das Eingabefeld einen unscheinbaren Bug. Wenn Sie die Option "Feste Dezimalstelle setzen" aktivieren, für die Stellenanzahl eine Zahl grösser als 300 oder kleiner als -300, also zum Beispiel 500 eingeben, dann die Option deaktivieren und schliesslich auf OK klicken, oder auf eine andere Registerseite und wieder zurück auf die Bearbeiten-Registerseite wechseln, so wird Ihre Eingabe nicht übernommen. Beim nächsten Öffnen des Dialogfenster wird wieder der vor Ihrer Eingabe eingestellte Wert angezeigt. Wenn Sie jedoch die Option "Feste Dezimalstelle setzen" aktivieren, die Zahl 500 eingeben und dann auf OK oder eine andere Registerseite klicken, so erscheint verständlicherweise die obige Fehlermeldung. Wenn Sie jetzt aber die Dezimalstelle-Option deaktivieren und dann das Fenster mit OK schliessen, so wird der Wert angenommen. Klar, die Option ist deaktiviert, und es werden somit keine 500 Dezimalstellen angezeigt. Dennoch: Der - wohlgemerkt ungültige - Wert wird übernommen und beim erneuten Öffnen des Dialogfensters wieder angezeigt. Der Wert wird sogar persistent gespeichert, soll heissen beim Beenden von Excel in die Windows Registry geschrieben. Beim nächsten Programmstart wird der Wert aus der Registry gelesen und anstandslos im Optionen-Dialogfenster angezeigt.

To Top

Zahlen mit mehr als 300 Dezimalstellen (maximal 307 Stellen)

Wie weiter oben erwähnt wurde, kann man mit der maximal erlaubten Stellenanzahl 300 erreichen, dass aus der eingegebenen Zahl 1 eine 1E-300 wird (bzw. bei -300 eine 1E+300 wird). Allerdings ist gemäss Excel-Spezifikation die kleinste zulässige positive Zahl mit 1E-307 angegeben. Was kann man also tun, damit die Zahl 1 in eine 1E-307 konvertiert wird? Ganz einfach, denn auch dafür gibt's einen Trick.

Beenden Sie Microsoft Excel und gehen dann wie folgt vor:
» Schritt 1: Öffnen Sie die Windows Registry mit dem Registrierungseditor (RegEdit.exe).
» Schritt 2: Suchen und öffnen Sie den Zweig "HKEY_CURRENT_USER\Software\Microsoft\Office\x.0\Excel\Microsoft Excel" (x = je nach verwendeter Excelversion die Ziffer 8, 9, 10 oder 11).
» Schritt 3: Klicken Sie doppelt auf den Eintrag "AutoDec" zum Ändern des Wertes.
» Schritt 4: Geben Sie im Feld "Wert" die Zahl 267 ein (Unter "Basis" muss die Option "Hexadezimal" aktiviert sein).
» Schritt 5: Beenden Sie den Windows Registry-Editor

Beim nächsten Ausführen von Microsoft Excel wird eine feste Dezimalstellenanzahl von 307 verwendet, d.h. die Eingabe der Zahl 1 in eine Zelle wird automatisch zur Zahl 1E-307. Wenn man das Optionen-Dialogfenster öffnet, so ist dort im Feld "Stellenanzahl" der Wert 307 eingetragen und die Option "Feste Dezimalstelle setzen" tatsächlich aktiviert.

Excel-Optionen: Feste Dezimalstelle von 307 Stellen
Abbildung: Optionen-Fenster mit 307 Stellen für die feste Dezimalstelle

Der Nachteil ist, dass man das Fenster nicht mehr mit OK schliessen kann, da 307 nicht im erlaubten Bereich von -300 bis 300 liegt. Mit anderen Worten erscheint diese Fehlermeldung:

Fehlermeldung "Zahl muss zwischen -300 und 300 liegen"
Abbildung: Fehlermeldung "Zahl muss zwischen -300 und 300 liegen"

Allerdings ist die Fehlermeldung das einzige Problem, das ich feststellen konnte. Excel scheint richtig zu rechnen, soweit man das überhaupt noch überprüfen kann. Auf jeden Fall ist 1E-307 + 1E-307 = 2E-307, was korrekt ist. Auch 1E-307 * 10 ist 1E-306, was ebenfalls stimmt.

Nebenbei erwähnt ist eine Stellenanzahl von 307 wirklich die Grenze des Machbaren. Eine Anzahl von 308 Stellen kann dazu führen, dass nicht mehr sämtliche Zelleingaben korrekt umgewandelt werden. Excel zeigt dann anstelle der eingegebenen Zahl nur noch die Zahl 0 in der Zelle. Bei 309 Dezimalstellen arbeitet das Feature "Feste Dezimalstelle" generell nicht mehr korrekt. Das bedeutet, dass aus jeder eingegebenen Ganzzahl immer die Zahl 0 wird.

Hier noch ein paar andere Werte für den "AutoDec"-Eintrag:

Wert Feste Dezimalstelle setzen Stellenanzahl
0 Deaktiviert 0
1 Aktiviert 0
2 Deaktiviert 1
3 Aktiviert 1
4 Deaktiviert 2
5 Aktiviert 2
fffffffe Deaktiviert -1
ffffffff Aktiviert -1

To Top

Benutzerdefiniertes Zahlenformat mit mehr als 15 Stellen

Diese Beschreibung folgt demnächst...

Zahlenformat-Syntax
Abbildung: Syntax eines Zahlenformates

To Top

Internetseiten mit Formeln zum Thema Zahlen und Rechnen

Hier ein paar interessante Internetseiten mit Excel-Formeln:
  Runden nach einer Anzahl signifikanter Stellen
  http://www.excelformeln.de/formeln.html?welcher=179
  Flexibles Runden von Zahlen
  http://www.excelformeln.de/formeln.html?welcher=173
  Anzeigen einer bestimmten Nachkommastelle
  http://www.excelformeln.de/formeln.html?welcher=151
  Stammbrüche einer Fließkommazahl nach Fibonacci
  http://www.excelformeln.de/formeln.html?welcher=287

To Top

Microsoft Knowledge Base-Artikel zum Thema Zahlen und Rechnen

Hier eine Liste verschiedener Microsoft Knowledge Base-Artikeln:
  XL (all Versions): Number of Significant Digits MS Excel Retains
  http://support.microsoft.com/?scid=kb;en-us;65903
  XL (all Versions): Last Digits Changed to Zeroes When You Type Long Numbers in Cells
  http://support.microsoft.com/?scid=kb;en-us;269370
  XL (all Versions): Decimal point or trailing zeros unexpectedly appear in number in Excel
  http://support.microsoft.com/?scid=kb;en-us;305567
  XL (all Versions): Excel May Change the Precision Mode of the Floating-Point Control Word
  http://support.microsoft.com/?scid=kb;en-us;263213
  XL (all Versions): Floating-Point Arithmetic May Give Inaccurate Results
  http://support.microsoft.com/?scid=kb;en-us;78113
  XL (all Versions): How to correct rounding errors in floating-point arithmetic
  http://support.microsoft.com/?scid=kb;en-us;214118
  XL97: "Overflow" Error Running Procedure with Math Calculation
  http://support.microsoft.com/?scid=kb;en-us;125900
  OFF97: Rounding Errors in Visual Basic For Applications
  http://support.microsoft.com/?scid=kb;en-us;165373
  XL97/XL98: Incorrect Result Raising 10 to Very Large/Very Small Power
  http://support.microsoft.com/?scid=kb;EN-US;172911
  XL2000: Incorrect Result Raising 10 to Very Large/Very Small Power
  http://support.microsoft.com/?scid=kb;EN-US;214373
  XL2000: Visual Basic Macro to Convert Number to a Different Base
  http://support.microsoft.com/?scid=kb;en-us;213392
  INFO: Precision and Accuracy in Floating-Point Calculations
  http://support.microsoft.com/?scid=kb;EN-US;125056
  Complete Tutorial to Understand IEEE Floating-Point Errors
  http://support.microsoft.com/?scid=kb;EN-US;42980

 

  Verwandte Limitation: Maximale Anzahl benutzerdefinierte Zahlenformate
  Verwandte Limitation: Maximale Länge eines benutzerdefinierten Zahlenformates

To Top

Seiten-Info

Artikel-ID xllimit5
Limitation-ID 16, 17, 18, 19,
20, 21, 134,
179, 181

 

Verwandte Limitationen

Artikel-ID xllimit23
Limitation-ID 26

 

Links

Liste der Limitationen-Artikel
Liste der Excel-Limitationen
Liste der Excel-Seiten
XLimits (Home)
xlam (Home)

Haben Sie Fragen, Anregungen oder einen Fehler entdeckt?
Kontakt zum Autor

Zuletzt aktualisiert am 18.04.2006 / 17:30 Uhr
Zuletzt kontrolliert am 19.12.2008 / 17:00 Uhr
© 2002-2009 by Philipp von Wartburg, Schweiz
Alle Rechte vorbehalten