mini|Exakt darstellbare Gleitkomma­zahlen für verschiedene Mantissen­längen, Basis: 2, Exponent −3 bis 1 Gleitkommazahl (), auch Fließkommazahl genannt, bezeichnet eine Zahldarstellung, die sich gleichermaßen für sehr große wie für sehr kleine Zahlen eignet. Sie besteht aus zwei Teilen, einem Exponenten (Hochzahl), der die Größenordnung angibt, gleichbedeutend mit der Position des Kommas, sowie einer Mantisse, die den Wert genauer spezifiziert. Das unterscheidet sie von Festkommazahlen, zu denen auch die Ganzzahlen gehören, die aus nur einer Ziffernfolge mit einer festgelegten Position des Kommas bestehen.

Üblicherweise werden Gleitkommazahlen im für Menschen gewohnten Zehnersystem verwendet, sowie im Zweiersystem auf Computern, beispielsweise

für die praktischere Schreibweise sehr großer und sehr kleiner Zahlen in wissenschaftlicher Notation, Gleitkomma- bzw. Exponentialschreibweise, sowie für die Repräsentation von Zahlen in wissenschaftlichen Taschenrechnern und in Computern.

Beide Verwendungen sind miteinander verwandt, weisen aber signifikante Unterschiede auf. Während erstere eine alternative Schreibweise für Zahlen ist (wie auch die Darstellung in anderen Basen) und keinen Einfluss auf die Zahl selbst hat, stellt zweiteres ein Speicherformat für rationale Zahlen in der Datenverarbeitung dar und ermöglicht Zahlenformate mit großem Wertebereich und gleichmäßiger relativer Genauigkeit über den Wertebereich.

Gleitkommazahlen bestehen aus einer festen Anzahl von Ziffern, die gemäß dem Stellenwertsystem den Wert der Zahl angeben, sowie der Angabe, um wie viele Stellen das Komma nach links oder rechts verschoben werden muss, um die Zahl in der Dezimalschreibweise zu erhalten. So beschreibt zum Beispiel die Angabe „12345 und das Komma 2 Stellen nach links“ die Zahl 123,45. Diese Zahlendarstellung deckt durch das bewegliche Komma einen großen Zahlenraum ab und bietet durch die feste Anzahl von ausgeschriebenen Ziffern eine gute Genauigkeit.

Ob eine gegebene rationale Zahl eine Gleitkommazahl ist, hängt nicht von der Zahl selbst ab, sondern von dem gewählten Darstellungsformat. Die Computer der 1930er bis 1960er Jahre nutzten eine Vielzahl unterschiedlicher Darstellungsformate. Der 1985 erschienene Standard IEEE 754 etablierte zwei Darstellungsformate, die sich seitdem durchgesetzt haben.

Geschichtliche Entwicklung

Die erste dokumentierte Verwendung der Gleitkommaschreibweise fand im Jahr 1750 v. Chr. statt: Im Zweistromland (Mesopotamien) wurden wissenschaftliche Rechnungen mit der Basis durchgeführt und der Exponent (eine meistens kleine ganze Zahl) im Kopf mitgeführt.Otto Neugebauer: The exact sciences in antiquity. Princeton University Press, 1952.Bartel Leendert van der Waerden: Science awakening. P. Noordhoff, Groningen, 1954.Donald E. Knuth: Ancient Babylonian algorithms. In: Commun. ACM. 15, 1972, S. 671–677, Korr. in Commun. ACM. 19, 1976, S. 108.Donald E. Knuth: The Art of Computer Programming. Vol. 2: Seminumerical Algorithms. 3. Auflage. Addison-Wesley, 1997, S. 196. Dasselbe Vorgehen war später (seit etwa 1654) bei Berechnungen mit einem Rechenschieber üblich.

Im Jahr 1913 schrieb der spanische Ingenieur Leonardo Torres Quevedo seine Essays on Automatics und führte darin erstmals die Idee der Gleitkomma-Arithmetik in Computer ein.

Erstmals in Computern verwendet wurde eine Gleitkommadarstellung 1937 von Konrad Zuse in seinen Computern Z1 und Z3.Rojas, R., Röder, J., Nguyen, H.: Die Prozessorarchitektur der Rechenmaschine Z1. In: Informatik Spektrum. Band 37, 2014, S. 341–347, .

Das heute häufigste und bekannteste Gleitkommasystem wurde 1985 in der Norm IEEE 754 definiert und ist in den meisten CPUs in Hardware implementiert. IEEE 854 ist eine Norm für Gleitkomma-Dezimalzahlen, also Basis 10 statt Basis 2. Beide Normen wurden in der überarbeiteten Fassung IEEE 754-2008 zusammengeführt und erweitert.

Schreibweisen Festkommaschreibweise mini|Registrierkasse mit 3 Stellen vor dem Komma und 2 Nachkommastellen

Das Rechenwerk von mechanischen und elektronischen Rechenmaschinen arbeitet mit Zahlen fester Länge. Beispiele dafür sind mechanische Registrierkassen, bei denen im Anzeigebereich eine feste Anzahl von Ziffern verbaut ist. Registrierkassen werden eingesetzt, um Geldbeträge zu addieren. In den meisten Währungen werden Geldbeträge mit zwei Nachkommastellen angegeben, und die Beträge haben insbesondere im Einzelhandel eine praktische Obergrenze, daher reicht für diesen Anwendungsfall ein Zahlenraum aus, der 3 oder 4 Stellen vor dem Komma und 2 Nachkommastellen hat. Bei allen Zahlen, die die Registrierkasse anzeigen kann, hat das Komma dieselbe Position, daher heißt die Menge der so darstellbaren Zahlen Festkommazahlen, im Beispiel der abgebildeten Registrierkasse „Festkommazahlen im Dezimalsystem ohne Vorzeichen mit 3 Stellen vor und 2 Stellen nach dem Komma“.

Mit dieser Schreibweise kann Exaktheit beabsichtigt und erreicht werden, und die Genauigkeit ist eine absolute.

Exponentialschreibweise Im naturwissenschaftlichen Bereich ist der Zahlenraum deutlich größer, bei Längenangaben reicht er vom Durchmesser des Protons (etwa 0,000 000 000 000 001 7 Meter bzw. 1,7 Femtometer) bis zum Durchmesser des Universums (etwa 880 000 000 000 000 000 000 000 000 Meter bzw. 880 Trilliarden Kilometer). Bei so großen oder kleinen Zahlen ist die Schreibweise durch die vielen Nullen unübersichtlich, daher hat sich dort eine andere Schreibweise etabliert, bei der die Zahl in ihre signifikanten Ziffern und eine Kommaverschiebung zerlegt wird. In dieser Schreibweise sind die Zahlen 1,7·10−15 und 8,8·1026 deutlich kürzer und dadurch einfacher zu erkennen. Die hinter der Basis 10 hochgestellte −15 bzw. 26 in dieser Exponentialschreibweise gibt an, um wie viele Stellen das Komma nach links bzw. nach rechts verschoben werden muss. Das Komma hat keine feste Position, sondern die Position ist beweglich, daher der Begriff Gleitkommazahl.

Mit dieser Schreibweise ist absolute Exaktheit normalerweise nicht beabsichtigt, und die relative Genauigkeit hängt eng mit der Anzahl der vorgesehenen signifikanten Stellen zusammen.

Schreibweisen für Gleitkommazahlen

Wissenschaftliche Notation mit konsequenter Normalisierung auf Beispiel: 10000 = Technische Notation mit Normalisierung auf , mit f als Potenz der Anzahl der verbleibenden signifikanten Stellen der Messunsicherheit für die Rechengenauigkeit (denormalisierte Stellen). Im Exponent erscheinen nur Vielfache von 3 – diese Darstellung lässt sich beim Rechnen mit Maßeinheiten sowohl zwanglos in die Einheitenvorsätze als auch die Zifferngruppierung mit Tausendertrennzeichnung überführen bzw. sich daraus erzeugen Beispiel:  m = = Signifikanz: = ± 5 m (4 signifikante Stellen bezüglich Messung in Kilometern mit Rundung), aber = ± 5000 m (2 signifikante Stellen bezüglich Messung in Mm) – wobei die präzisen Angaben über Standard- und erweiterte Messunsicherheit DIN 1319-3 bzw. dem ISO/BIPM-Guide (GUM, ENV 13005) folgen

In Programmiersprachen wird für die Notation von Gleitkommazahlen im Quelltext und für ihre Ein- und Ausgabe eine kompakte Variante der Exponentialschreibweise verwendet, z. B. 2.99792458e8 (= 2,997.924.58 · 108). Das e steht für „mal 10 hoch“. In der Sprache Algol 60 war dafür ein eigenes Zeichen ⏨ (Basiszehn) vorgesehen, das zwar auf manchen Ein- und Ausgabegeräten damaliger Rechner vorhanden war, aber erst 2002, also nach der Verwendungszeit von Algol 60, als Unicode-Zeichen U+23E8 in einen genormten Zeichencode aufgenommen wurde.

Wertemengen Es gibt zahlreiche unterschiedliche Darstellungsformate für Gleitkommazahlen. Jedes Darstellungsformat definiert, welche Zahlen sich darin darstellen lassen und welche nicht. Die Unterschiede liegen in der Genauigkeit der Zahlen, dem Umfang des Zahlenraums, dem Speicherbedarf für eine einzelne Zahl und besonderen Darstellungsformen für betragsmäßig kleine Zahlen, unendlich und (aus praktischen Gründen) Elemente, die keine Zahlen sind, zum Beispiel, um fehlerhafte Rechenergebnisse zu markieren.

Ein Darstellungsformat für Gleitkommazahlen definiert anhand mehrerer Parameter, welche Zahlen in dem Format darstellbar sind: Die Basis des Stellenwertsystems legt fest, wie viele unterschiedliche Ziffern verwendet werden, um die Zahlen zu schreiben. Die Basis 10 mit den Ziffern 0 bis 9 sorgt für menschenfreundliche Darstellungen, zum Beispiel auf wissenschaftlichen Taschenrechnern. Die Basis 2 mit den Ziffern 0 und 1 ist für elektronische Schaltungen, insbesondere Computer, ideal. Alle weiteren Basen sind exotisch. Die Anzahl der signifikanten Ziffern  legt fest, mit welcher Genauigkeit die darstellbaren Zahlen angegeben werden können. Die Ziffern selbst heißen Mantisse. Taschenrechner zeigen üblicherweise 8 bis 10 Dezimalstellen an (rechnen aber intern häufig mit mehr Stellen). Die seit 1985 üblichen Darstellungsformate für Computer haben eine Genauigkeit von 24 bzw. 53 Binärstellen, das sind umgerechnet etwa 7 bzw. 15 Dezimalstellen. Die feste Position des Kommas in der Mantisse. Das Komma steht üblicherweise zwischen der ersten und der zweiten Stelle, die Mantisse hat also die Form . Der minimale Exponent legt fest, um wie viele Stellen das Komma maximal nach links verschoben werden kann. Der maximale Exponent legt fest, um wie viele Stellen das Komma maximal nach rechts verschoben werden kann.

Der Wert  einer Zahl ergibt sich nach der Formel:

.

Hierbei ist: das Vorzeichen der Zahl (entweder oder ), die Mantisse der Zahl, die Basis des Darstellungsformats und der Exponent der Zahl.

Die obigen Parameter lassen noch Zahlen zu, die mehrere gleichwertige Darstellungen haben. Um das zu umgehen, wird die Mantisse normalisiert, so dass die Ziffer vor dem Komma keine 0 ist. Durch diese Einschränkung gibt es zu jeder darstellbaren Zahl nur noch eine mögliche Schreibweise. Eine Nebenwirkung dieser Einschränkung ist jedoch, dass die Zahl 0 nicht mehr darstellbar ist, da ihre Darstellung ausschließlich aus Nullen besteht. Daher muss eine weitere Regel eingeführt werden, um die Zahl 0 darzustellen. Eine Möglichkeit ist, auf die Normalisierung zu verzichten, wenn der Exponent der Zahl gleich dem des Darstellungsformats ist. Dadurch bleibt die Eindeutigkeit bestehen, so dass es zu jeder darstellbaren Zahl genau eine mögliche Schreibweise gibt.

Beispiel

Ein häufiges Darstellungsformat für die Anzeige von Zahlen auf wissenschaftlichen Taschenrechnern ist: Basis 10, mit den Ziffern 0 bis 9 10 Stellen Genauigkeit für die Mantisse normalisierte Mantisse mit 1 Stelle vor dem Komma Exponenten von bis

Die Zahl mit der Darstellung hat damit den Wert oder als ganze Zahl geschrieben .

Die betragsmäßig kleinste darstellbare Zahl in diesem Darstellungsformat ist , also 0, die größte darstellbare Zahl ist , das ist eine 100-stellige Zahl.

Speicherformate Bei der Verarbeitung in Computern werden Gleitkommazahlen in einem Speicherbereich fester Größe abgelegt. Die dabei verwendeten Speicherformate unterscheiden sich von der abstrakt-mathematischen Darstellung der Gleitkommazahl, zum Beispiel werden redundante Informationen weggelassen. Ein konkretes Speicherformat ist eine Abwägung: Einerseits sollen die Zahlen möglichst exakt gespeichert werden und dabei einen großen Zahlenraum abdecken, andererseits soll der Speicherbedarf möglichst gering sein.

Der minimale Speicherbedarf ergibt sich aus den Parametern des Darstellungsformats. Um eine Gleitkommazahl aus dem Darstellungsformat mit der Basis , der Genauigkeit von Binärstellen und einem Exponenten im Bereich von bis zu speichern, benötigt man: für das Vorzeichen 1 Bit, da es 2 mögliche Werte hat, für die Mantisse Bit, da jede Stelle der Mantisse wegen der Basis 2 genau 1 Bit Speicherplatz benötigt für den Exponenten so viele Bits, dass jede ganze Zahl von bis gespeichert werden kann, also .