<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Gleitkommazahl</id>
	<title>Gleitkommazahl - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Gleitkommazahl"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Gleitkommazahl&amp;action=history"/>
	<updated>2026-06-04T13:22:19Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Gleitkommazahl&amp;diff=28513&amp;oldid=prev</id>
		<title>imported&gt;Dk1909: gr</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Gleitkommazahl&amp;diff=28513&amp;oldid=prev"/>
		<updated>2026-04-01T11:08:39Z</updated>

		<summary type="html">&lt;p&gt;gr&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Datei:Exakt darstellbare Gleitkommazahlen.png|mini|Exakt darstellbare Gleitkomma&amp;amp;shy;zahlen für verschiedene Mantissen&amp;amp;shy;längen, Basis: 2, Exponent −3 bis 1]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Gleitkommazahl&amp;#039;&amp;#039;&amp;#039; ({{enS|floating-point number}}), auch &amp;#039;&amp;#039;&amp;#039;Fließkommazahl&amp;#039;&amp;#039;&amp;#039; genannt, bezeichnet eine [[Zahldarstellung]], die sich gleichermaßen für sehr große wie für sehr kleine [[Zahl]]en 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 [[Festkommazahl]]en, zu denen auch die [[Ganze Zahl|Ganzzahlen]] gehören, die aus nur einer Ziffernfolge mit einer festgelegten Position des Kommas bestehen.&lt;br /&gt;
&lt;br /&gt;
Üblicherweise werden Gleitkommazahlen im für Menschen gewohnten [[Zehnersystem]] verwendet, sowie im [[Zweiersystem]] auf Computern, beispielsweise&lt;br /&gt;
&lt;br /&gt;
* für die praktischere Schreibweise sehr großer und sehr kleiner Zahlen in [[Wissenschaftliche Notation|wissenschaftlicher Notation]], Gleitkomma- bzw. Exponentialschreibweise, sowie&lt;br /&gt;
* für die Repräsentation von Zahlen in wissenschaftlichen Taschenrechnern und in Computern.&lt;br /&gt;
&lt;br /&gt;
Beide Verwendungen sind miteinander verwandt, weisen aber signifikante Unterschiede auf.&lt;br /&gt;
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,&lt;br /&gt;
stellt zweiteres ein Speicherformat für [[Rationale Zahl|rationale Zahlen]] in der Datenverarbeitung dar und ermöglicht Zahlenformate mit großem Wertebereich und gleichmäßiger relativer Genauigkeit über den Wertebereich.&lt;br /&gt;
&lt;br /&gt;
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 [[Dezimaltrennzeichen|Komma]] nach links oder rechts verschoben werden muss, um die Zahl in der [[Dezimalsystem|Dezimalschreibweise]] zu erhalten. So beschreibt zum Beispiel die Angabe „12345 und das Komma 2 Stellen nach links“ die Zahl 123,45. Diese [[Zahldarstellung|Zahlendarstellung]] deckt durch das bewegliche Komma einen großen Zahlenraum ab und bietet durch die feste Anzahl von ausgeschriebenen Ziffern eine gute [[Genauigkeit#Genauigkeitsbegriff verschiedener Fachgebiete|Genauigkeit]].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Geschichtliche Entwicklung ==&lt;br /&gt;
&lt;br /&gt;
Die erste dokumentierte Verwendung der Gleitkommaschreibweise fand im Jahr 1750 v.&amp;amp;nbsp;Chr. statt: Im Zweistromland ([[Mesopotamien]]) wurden wissenschaftliche Rechnungen mit der Basis &amp;lt;math&amp;gt;b = 60&amp;lt;/math&amp;gt; durchgeführt und der Exponent (eine meistens kleine ganze Zahl) im Kopf mitgeführt.&amp;lt;ref&amp;gt;[[Otto Neugebauer]]: &amp;#039;&amp;#039;The exact sciences in antiquity.&amp;#039;&amp;#039; Princeton University Press, 1952.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[[Bartel Leendert van der Waerden]]: &amp;#039;&amp;#039;Science awakening.&amp;#039;&amp;#039; P. Noordhoff, Groningen, 1954.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[[Donald E. Knuth]]: &amp;#039;&amp;#039;Ancient Babylonian algorithms.&amp;#039;&amp;#039; In: &amp;#039;&amp;#039;Commun. ACM.&amp;#039;&amp;#039; 15, 1972, S. 671–677, Korr. in &amp;#039;&amp;#039;Commun. ACM.&amp;#039;&amp;#039; 19, 1976, S. 108.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[[Donald E. Knuth]]: &amp;#039;&amp;#039;[[The Art of Computer Programming]].&amp;#039;&amp;#039; Vol. 2: &amp;#039;&amp;#039;Seminumerical Algorithms.&amp;#039;&amp;#039; 3. Auflage. Addison-Wesley, 1997, S. 196.&amp;lt;/ref&amp;gt; Dasselbe Vorgehen war später (seit etwa 1654) bei Berechnungen mit einem [[Rechenschieber]] üblich.&lt;br /&gt;
&lt;br /&gt;
Im Jahr 1913 schrieb der spanische Ingenieur [[Leonardo Torres Quevedo]] seine &amp;#039;&amp;#039;Essays on Automatics&amp;#039;&amp;#039; und führte darin erstmals die Idee der Gleitkomma-Arithmetik in Computer ein.&amp;lt;ref name=RANDELL&amp;gt;{{ cite web|url=http://www.cs.ncl.ac.uk/publications/articles/papers/398.pdf |title=From Analytical Engine to Electronic Digital Computer: The Contributions of Ludgate, Torres, and Bush |last1=Randell |first1=Brian |author-link1=Brian Randell |language=en |access-date=2013-09-09 |url-status=dead |archive-url=https://web.archive.org/web/20130921055055/http://www.cs.ncl.ac.uk/publications/articles/papers/398.pdf |archive-date=2013-09-21 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erstmals in [[Computer]]n verwendet wurde eine Gleitkommadarstellung 1937 von [[Konrad Zuse]] in seinen Computern [[Z1 (Rechner)|Z1]] und [[Zuse Z3|Z3]].&amp;lt;ref name=&amp;quot;Z1_2014&amp;quot;&amp;gt;Rojas, R., Röder, J., Nguyen, H.: &amp;#039;&amp;#039;Die Prozessorarchitektur der Rechenmaschine Z1.&amp;#039;&amp;#039; In: &amp;#039;&amp;#039;Informatik Spektrum.&amp;#039;&amp;#039; Band 37, 2014, S. 341–347, {{DOI|10.1007/s00287-013-0749-1}}.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 &amp;#039;&amp;#039;Gleitkomma-Dezimalzahlen&amp;#039;&amp;#039;, also Basis 10 statt Basis 2. Beide Normen wurden in der überarbeiteten Fassung [[IEEE 754-2008]] zusammengeführt und erweitert.&lt;br /&gt;
&lt;br /&gt;
== Schreibweisen ==&lt;br /&gt;
=== Festkommaschreibweise ===&lt;br /&gt;
[[Datei:NCR Registrierkasse Austria.jpg|mini|Registrierkasse mit 3 Stellen vor dem Komma und 2 Nachkommastellen]]&lt;br /&gt;
&lt;br /&gt;
Das Rechenwerk von mechanischen und elektronischen Rechenmaschinen arbeitet mit Zahlen fester Länge. Beispiele dafür sind mechanische [[Registrierkasse]]n, 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 &amp;#039;&amp;#039;&amp;#039;Festkommazahlen&amp;#039;&amp;#039;&amp;#039;, im Beispiel der abgebildeten Registrierkasse „Festkommazahlen im Dezimalsystem ohne Vorzeichen mit 3 Stellen vor und 2 Stellen nach dem Komma“.&lt;br /&gt;
&lt;br /&gt;
Mit dieser Schreibweise kann Exaktheit beabsichtigt und erreicht werden, und die [[Genauigkeit#Mathe|Genauigkeit]] ist eine absolute.&lt;br /&gt;
&lt;br /&gt;
=== Exponentialschreibweise ===&lt;br /&gt;
Im naturwissenschaftlichen Bereich ist der [[Zahlenraum]] deutlich größer, bei Längenangaben reicht er vom Durchmesser des Protons (etwa 0,000&amp;amp;#x202F;000&amp;amp;#x202F;000&amp;amp;#x202F;000&amp;amp;#x202F;001&amp;amp;#x202F;7&amp;amp;nbsp;Meter bzw. 1,7&amp;amp;nbsp;Femtometer) bis zum Durchmesser des Universums (etwa 880&amp;amp;#x202F;000&amp;amp;#x202F;000&amp;amp;#x202F;000&amp;amp;#x202F;000&amp;amp;#x202F;000&amp;amp;#x202F;000&amp;amp;#x202F;000&amp;amp;#x202F;000&amp;amp;nbsp;Meter bzw. 880&amp;amp;nbsp;Trilliarden&amp;amp;nbsp;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&amp;lt;sup&amp;gt;−15&amp;lt;/sup&amp;gt; und 8,8·10&amp;lt;sup&amp;gt;26&amp;lt;/sup&amp;gt; deutlich kürzer und dadurch einfacher zu erkennen. Die hinter der Basis 10 hochgestellte &amp;amp;minus;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.&lt;br /&gt;
&lt;br /&gt;
Mit dieser Schreibweise ist absolute Exaktheit normalerweise nicht beabsichtigt, und die relative Genauigkeit hängt eng mit der Anzahl der vorgesehenen signifikanten Stellen zusammen.&lt;br /&gt;
&lt;br /&gt;
=== Schreibweisen für Gleitkommazahlen ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;[[Wissenschaftliche Notation]]&amp;#039;&amp;#039; mit konsequenter Normalisierung auf &amp;lt;math&amp;gt;1 \le m &amp;lt; 10&amp;lt;/math&amp;gt;&lt;br /&gt;
** Beispiel: 10000 = {{ZahlExp|1|4}}&lt;br /&gt;
* &amp;#039;&amp;#039;Technische Notation&amp;#039;&amp;#039; mit Normalisierung auf &amp;lt;math&amp;gt;1/f \le m &amp;lt; 1000&amp;lt;/math&amp;gt;, mit &amp;#039;&amp;#039;f&amp;#039;&amp;#039; als Potenz der Anzahl der verbleibenden [[Signifikante Stellen|signifikanten Stellen]] der [[Messunsicherheit]] für die Rechengenauigkeit &amp;#039;&amp;#039;(denormalisierte Stellen)&amp;#039;&amp;#039;. Im Exponent erscheinen nur Vielfache von 3 – diese Darstellung lässt sich beim Rechnen mit [[Maßeinheit]]en sowohl zwanglos in die Einheitenvorsätze, als auch die [[Zifferngruppierung]] mit Tausendertrennzeichnung überführen, bzw. sich daraus erzeugen&lt;br /&gt;
** Beispiel: {{formatnum:10000}}&amp;amp;nbsp;m = {{ZahlExp|10|3|post=m}} = {{Maß|10|km}}&lt;br /&gt;
** Signifikanz: {{ZahlExp|10,00|3|post=m}} = {{formatnum:10000}} ±&amp;amp;nbsp;5&amp;amp;nbsp;m (4&amp;amp;nbsp;signifikante Stellen bezüglich Messung in Kilometern mit [[Rundung]]), aber {{ZahlExp|0,01|6|post=m}} = {{formatnum:10000}} ±&amp;amp;nbsp;5000&amp;amp;nbsp;m (2&amp;amp;nbsp;signifikante Stellen bezüglich Messung in Mm) – wobei die präzisen Angaben über Standard- und erweiterte Messunsicherheit [[DIN 1319]]-3 bzw. dem &amp;#039;&amp;#039;ISO/BIPM-Guide&amp;#039;&amp;#039; ([[GUM (Norm)|GUM]], ENV 13005) folgen&lt;br /&gt;
&lt;br /&gt;
In [[Programmiersprache]]n wird für die Notation von Gleitkommazahlen im [[Quelltext]] und für ihre [[Eingabe und Ausgabe|Ein- und Ausgabe]] eine kompakte Variante der Exponentialschreibweise verwendet, z.&amp;amp;nbsp;B.&amp;amp;nbsp;&amp;lt;code&amp;gt;2.99792458e8&amp;lt;/code&amp;gt; (=&amp;amp;nbsp;2,997.924.58&amp;amp;nbsp;·&amp;amp;nbsp;10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt;). Das &amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt; steht für „mal 10 hoch“. In der Sprache [[Algol 60]] war dafür ein eigenes Zeichen &amp;lt;code&amp;gt;⏨&amp;lt;/code&amp;gt; (&amp;#039;&amp;#039;Basiszehn&amp;#039;&amp;#039;) vorgesehen, das zwar auf manchen Ein- und Ausgabegeräten damaliger Rechner vorhanden war, aber erst 2002, also nach der Verwendungszeit von Algol&amp;amp;nbsp;60, als [[Unicode]]-Zeichen U+23E8 in einen genormten Zeichencode aufgenommen wurde.&lt;br /&gt;
&lt;br /&gt;
== Wertemengen ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Ein Darstellungsformat für Gleitkommazahlen definiert anhand mehrerer Parameter, welche Zahlen in dem Format darstellbar sind:&lt;br /&gt;
* Die &amp;#039;&amp;#039;Basis&amp;#039;&amp;#039; &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; des [[Stellenwertsystem]]s legt fest, wie viele unterschiedliche Ziffern verwendet werden, um die Zahlen zu schreiben.&lt;br /&gt;
** Die Basis 10 mit den Ziffern 0 bis 9 sorgt für menschenfreundliche Darstellungen, zum Beispiel auf wissenschaftlichen Taschenrechnern.&lt;br /&gt;
** Die Basis 2 mit den Ziffern 0 und 1 ist für elektronische Schaltungen, insbesondere Computer, ideal.&lt;br /&gt;
** Alle weiteren Basen sind exotisch.&lt;br /&gt;
* Die &amp;#039;&amp;#039;Anzahl der signifikanten Ziffern&amp;#039;&amp;#039;&amp;amp;nbsp;&amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; legt fest, mit welcher Genauigkeit die darstellbaren Zahlen angegeben werden können. Die Ziffern selbst heißen [[Mantisse]].&lt;br /&gt;
** [[Taschenrechner]] zeigen üblicherweise 8 bis 10 Dezimalstellen an (rechnen aber intern häufig mit mehr Stellen).&lt;br /&gt;
** 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.&lt;br /&gt;
* Die feste Position des Kommas in der Mantisse.&lt;br /&gt;
** Das Komma steht üblicherweise zwischen der ersten und der zweiten Stelle, die Mantisse hat also die Form &amp;lt;math&amp;gt;m{,}mmmmmm\cdots&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Der &amp;#039;&amp;#039;minimale Exponent&amp;#039;&amp;#039; &amp;lt;math&amp;gt;e_\textit{min}&amp;lt;/math&amp;gt; legt fest, um wie viele Stellen das Komma maximal nach links verschoben werden kann.&lt;br /&gt;
* Der &amp;#039;&amp;#039;maximale Exponent&amp;#039;&amp;#039; &amp;lt;math&amp;gt;e_\textit{max}&amp;lt;/math&amp;gt; legt fest, um wie viele Stellen das Komma maximal nach rechts verschoben werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Wert&amp;amp;nbsp;&amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; einer Zahl ergibt sich nach der Formel:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;w := v \cdot m \cdot b^{e}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Hierbei ist:&lt;br /&gt;
* &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; das Vorzeichen der Zahl (entweder &amp;lt;math&amp;gt;+1&amp;lt;/math&amp;gt; oder &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt;),&lt;br /&gt;
* &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; die [[Mantisse]] der Zahl,&lt;br /&gt;
* &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; die Basis des Darstellungsformats und&lt;br /&gt;
* &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt; der [[Potenz (Mathematik)|Exponent]] der Zahl.&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;math&amp;gt;e_\textit{min}&amp;lt;/math&amp;gt; des Darstellungsformats ist. Dadurch bleibt die Eindeutigkeit bestehen, so dass es zu jeder darstellbaren Zahl genau eine mögliche Schreibweise gibt.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel ===&lt;br /&gt;
&lt;br /&gt;
Ein häufiges Darstellungsformat für die Anzeige von Zahlen auf wissenschaftlichen Taschenrechnern ist:&lt;br /&gt;
* Basis 10, mit den Ziffern 0 bis 9&lt;br /&gt;
* 10 Stellen Genauigkeit für die Mantisse&lt;br /&gt;
* normalisierte Mantisse mit 1 Stelle vor dem Komma&lt;br /&gt;
* Exponenten von &amp;lt;math&amp;gt;-99&amp;lt;/math&amp;gt; bis &amp;lt;math&amp;gt;+99&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Zahl mit der Darstellung &amp;lt;math&amp;gt;v=+1,\;m=9{,}460\,730\,5,\;e=15&amp;lt;/math&amp;gt; hat damit den Wert &amp;lt;math&amp;gt;9{,}460\,730\,5 \cdot 10^{15}&amp;lt;/math&amp;gt; oder als ganze Zahl geschrieben &amp;lt;math&amp;gt;9\,460\,730\,500\,000\,000&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die betragsmäßig kleinste darstellbare Zahl in diesem Darstellungsformat ist &amp;lt;math&amp;gt;0{,}000\,000\,0 \cdot 10^{-99}&amp;lt;/math&amp;gt;, also 0, die größte darstellbare Zahl ist &amp;lt;math&amp;gt;9{,}999\,999\,9 \cdot 10^{99}&amp;lt;/math&amp;gt;, das ist eine 100-stellige Zahl.&lt;br /&gt;
&lt;br /&gt;
== Speicherformate ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Der minimale Speicherbedarf ergibt sich aus den Parametern des Darstellungsformats. Um eine Gleitkommazahl aus dem Darstellungsformat mit der Basis &amp;lt;math&amp;gt;b = 2&amp;lt;/math&amp;gt;, der Genauigkeit von &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; Binärstellen und einem Exponenten im Bereich von &amp;lt;math&amp;gt;e_\textit{min}&amp;lt;/math&amp;gt; bis &amp;lt;math&amp;gt;e_\textit{max}&amp;lt;/math&amp;gt; zu speichern, benötigt man:&lt;br /&gt;
* für das Vorzeichen 1 Bit, da es 2 mögliche Werte hat,&lt;br /&gt;
* für die Mantisse &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; Bit, da jede Stelle der Mantisse wegen der Basis 2 genau 1 Bit Speicherplatz benötigt&lt;br /&gt;
* für den Exponenten &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt; so viele Bits, dass jede ganze Zahl von &amp;lt;math&amp;gt;e_\textit{min}&amp;lt;/math&amp;gt; bis &amp;lt;math&amp;gt;e_\textit{max}&amp;lt;/math&amp;gt; gespeichert werden kann, also &amp;lt;math&amp;gt;\left\lceil \log_2 \left( 1 + e_\textit{max} - e_\textit{min} \right) \right\rceil&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Anker|Hidden bit}}Bei Gleitkommazahlen mit der Basis 2 ist es möglich, beim Speichern 1 Bit einzusparen. Dazu wird festgelegt, dass die Zahlen stets in ihrer normalisierten Form gespeichert werden. Das bedeutet im allgemeinen Fall, dass die erste Ziffer der Mantisse nicht 0 sein kann, denn sonst wäre die Zahl nicht normalisiert. Da es im Binärsystem nur die Ziffern 0 und 1 gibt, muss die erste Ziffer also 1 sein. Diese Ziffer ist also bereits bekannt und muss daher nicht für jede Zahl abgespeichert werden. Dadurch ergibt sich eine Ersparnis von 1 Bit, so dass für die Mantisse nur &amp;lt;math&amp;gt;p - 1&amp;lt;/math&amp;gt; Bit benötigt werden. Wird diese Möglichkeit genutzt, wird von einem &amp;#039;&amp;#039;{{lang|en|hidden bit}}&amp;#039;&amp;#039; ([[Englische Sprache|engl.]] wörtlich &amp;#039;&amp;#039;verstecktes Bit&amp;#039;&amp;#039;) gesprochen.&lt;br /&gt;
&lt;br /&gt;
Das Speicherformat definiert nicht nur, wie viele Bits zum Speichern einer Gleitkommazahl nötig sind, sondern auch, welche Teile der Zahl in welchem Bit gespeichert werden. Zusätzlich zu den Zahlen mit normalisierter Mantisse kann das Speicherformat auch definieren, wie unnormalisierte Zahlen gespeichert werden und ob es weitere Sonderfälle wie unendlich und NaN (engl. &amp;#039;&amp;#039;not a number&amp;#039;&amp;#039;) für ungültige Rechenergebnisse gibt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Sortiert nach Gesamtspeicherbedarf, dann Mantissenlänge --&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Speicherbedarf für Gleitkommazahlen in verschiedenen Formaten beziehungsweise auf verschiedenen Rechnersystemen&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Jahr&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Speicherformat &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Bits für &lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Anmerkungen&lt;br /&gt;
|-&lt;br /&gt;
! Mantisse&lt;br /&gt;
! Exponent&lt;br /&gt;
! gesamt&lt;br /&gt;
|-&lt;br /&gt;
| [[IEEE 754-2008|2008]] || [[IEEE 754]] binary16  || style=&amp;quot;text-align:right;&amp;quot; |  10 || style=&amp;quot;text-align:right;&amp;quot; |  5 || style=&amp;quot;text-align:right;&amp;quot; |   16 || Die Mantisse ist normalisiert. Umgangssprachlich [[Minifloat]] genannt.&lt;br /&gt;
|-&lt;br /&gt;
| 1937 || Zuse [[Z1 (Rechner)|Z1]] (1937) || style=&amp;quot;text-align:right;&amp;quot; |  16 || style=&amp;quot;text-align:right;&amp;quot; |  7 || style=&amp;quot;text-align:right;&amp;quot; |   24 || Die Mantisse ist normalisiert, Rechnen mit 0 ist nicht möglich.&amp;lt;ref name=&amp;quot;Z1_2014&amp;quot;/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1985 || [[IEEE 754]] binary32           || style=&amp;quot;text-align:right;&amp;quot; |  23 || style=&amp;quot;text-align:right;&amp;quot; |  8 || style=&amp;quot;text-align:right;&amp;quot; |   32 || Die Mantisse ist normalisiert. Umgangssprachlich [[Einfache Genauigkeit]] genannt.&lt;br /&gt;
|-&lt;br /&gt;
| 1990 || IBM [[System/390|S/390]] single || style=&amp;quot;text-align:right;&amp;quot; |  24 || style=&amp;quot;text-align:right;&amp;quot; |  7 || style=&amp;quot;text-align:right;&amp;quot; |   32 || &lt;br /&gt;
|-&lt;br /&gt;
| 1954 || [[IBM 704]] binär               || style=&amp;quot;text-align:right;&amp;quot; |  27 || style=&amp;quot;text-align:right;&amp;quot; |  8 || style=&amp;quot;text-align:right;&amp;quot; |   36 || Die Mantisse ist nicht normalisiert.&lt;br /&gt;
|-&lt;br /&gt;
| 1954 || [[IBM 704]] dezimal             || style=&amp;quot;text-align:right;&amp;quot; |   ? || style=&amp;quot;text-align:right;&amp;quot; |  ? || style=&amp;quot;text-align:right;&amp;quot; |   36 || Basis 10 statt 2 (weitere Details stehen nicht im Handbuch)&lt;br /&gt;
|-&lt;br /&gt;
| 1966 || DEC [[PDP-10]]                  || style=&amp;quot;text-align:right;&amp;quot; |  27 || style=&amp;quot;text-align:right;&amp;quot; |  8 || style=&amp;quot;text-align:right;&amp;quot; |   36 || &lt;br /&gt;
|-&lt;br /&gt;
|  1956 || Telefunken [[TR 4 (Rechner)|TR 4]] || rowspan=2&amp;quot; style=&amp;quot;text-align:right;&amp;quot; |  38 || rowspan=2&amp;quot; style=&amp;quot;text-align:right;&amp;quot; |  8 || rowspan=2&amp;quot; style=&amp;quot;text-align:right;&amp;quot; | 47+3 || rowspan=2&amp;quot;  | Basis b = 16&lt;br /&gt;
|-&lt;br /&gt;
| 1969 || Telefunken [[TR 440]] &lt;br /&gt;
|-&lt;br /&gt;
| 1956 || [[PERM (Computer)|PERM]] || style=&amp;quot;text-align:right;&amp;quot; |  40 || style=&amp;quot;text-align:right;&amp;quot; |  9 || style=&amp;quot;text-align:right;&amp;quot; | 50+1 || Es gibt drei verschiedene Gleitkomma-Arithmetiken.&lt;br /&gt;
|-&lt;br /&gt;
| 1964 || [[CDC 6600]]                    || style=&amp;quot;text-align:right;&amp;quot; |  47 || style=&amp;quot;text-align:right;&amp;quot; | 12 || style=&amp;quot;text-align:right;&amp;quot; |   60 || &lt;br /&gt;
|-&lt;br /&gt;
| 1985 || [[IEEE 754]] binary64    || style=&amp;quot;text-align:right;&amp;quot; |  52 || style=&amp;quot;text-align:right;&amp;quot; | 11 || style=&amp;quot;text-align:right;&amp;quot; |   64 || Die Mantisse ist normalisiert. Umgangssprachlich [[Doppelte Genauigkeit]] genannt.&lt;br /&gt;
|-&lt;br /&gt;
| 1990 || IBM [[System/390|S/390]] double || style=&amp;quot;text-align:right;&amp;quot; |  56 || style=&amp;quot;text-align:right;&amp;quot; |  7 || style=&amp;quot;text-align:right;&amp;quot; |   64 || &lt;br /&gt;
|-&lt;br /&gt;
| 1980 || [[Intel 8087]]&amp;lt;br&amp;gt;Temporary Real   || style=&amp;quot;text-align:right;&amp;quot; |  64 || style=&amp;quot;text-align:right;&amp;quot; | 15 || style=&amp;quot;text-align:right;&amp;quot; |   80 || style=&amp;quot;max-width:430px&amp;quot; | Die Mantisse ist nicht normalisiert. Internes temporäres Datenformat, erweiterter Bereich und Präzision tragen dazu bei, für alle externen Formate stets stabile, erwartete Ergebnisse zu liefern.&amp;lt;ref&amp;gt;{{Literatur |Titel=intel ::  dataBooks :: 1981 iAPX 86 88 Users Manual |Online=http://archive.org/details/bitsavers_inteldataBrsManual_57011881 |Abruf=2023-12-30}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[IEEE 754-2008|2008]] || [[IEEE 754]] binary128    || style=&amp;quot;text-align:right;&amp;quot; | 112 || style=&amp;quot;text-align:right;&amp;quot; | 15 || style=&amp;quot;text-align:right;&amp;quot; |  128 || Die Mantisse ist normalisiert. Umgangssprachlich [[vierfache Genauigkeit]] genannt.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Gesamtanzahl der pro Gleitkommazahl zu speichernden Bits ergibt sich in der Regel aus einem Vorzeichenbit sowie den Mantissenbits und Exponentenbits.&lt;br /&gt;
&lt;br /&gt;
Eine Angabe der Gestalt &amp;lt;math&amp;gt;z+m&amp;lt;/math&amp;gt; für die Gesamtlänge bedeutet, dass die Zahl im Speicher in Einheiten von &amp;lt;math&amp;gt;z+m&amp;lt;/math&amp;gt; Bit gespeichert wird, von denen aber nur &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; Bit für den Zahlenwert relevant sind und &amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; weitere für andere Zwecke genutzt werden können. Darüber hinaus können weitere Bits zu Hardware-Prüfzwecken mitgespeichert werden, diese stehen aber dem Programmierer beziehungsweise der Anwendung nicht für den zu speichernden Zahlenwert an sich zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
=== Rechenbeispiel für benötigten Speicherplatz ===&lt;br /&gt;
&lt;br /&gt;
Im Format &amp;#039;&amp;#039;IEEE 754 binary32&amp;#039;&amp;#039; ist &amp;lt;math&amp;gt;b = 2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;p = 24&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;e_\textit{min} = -126&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;e_\textit{max} = 127&amp;lt;/math&amp;gt;, der benötigte Speicherplatz ist daher:&lt;br /&gt;
* für das Vorzeichen &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; Bit&lt;br /&gt;
* für die normalisierte Mantisse &amp;lt;math&amp;gt;24 - 1 = 23&amp;lt;/math&amp;gt; Bit&lt;br /&gt;
* für den Exponenten &amp;lt;math&amp;gt;\left\lceil \log_2 \left(1 + 127 - (-126)\right) \right\rceil = \left\lceil \log_2 254 \right\rceil = \log_2 256 = 8&amp;lt;/math&amp;gt; Bit&lt;br /&gt;
&lt;br /&gt;
Für jede Gleitkommazahl werden bei diesem Speicherformat somit 32 Bit beziehungsweise 4 Byte benötigt.&lt;br /&gt;
&lt;br /&gt;
== Gleitkommaarithmetik ==&lt;br /&gt;
Beim Rechnen mit allgemeinen rationalen Zahlen (Bruchrechnung) ist das Ergebnis einer [[Addition]], [[Subtraktion]], [[Multiplikation]] und [[Division (Mathematik)|Division]] stets wieder eine rationale Zahl, mit einer einzigen Ausnahme, der Division durch 0. Diese Eigenschaft der [[Abgeschlossenheit (algebraische Struktur)|Abgeschlossenheit]] fällt beim Rechnen mit Gleitkommazahlen weg, da die Menge der darstellbaren Zahlen begrenzt ist. Die Zwischenergebnisse müssen daher nach jedem Schritt gerundet werden, damit sie in das Darstellungsformat passen.&lt;br /&gt;
&lt;br /&gt;
Durch dieses Runden entstehen beim Rechnen mit Gleitkommazahlen überraschende Ergebnisse. Insbesondere gelten die aus der Bruchrechnung bekannten Rechenregeln nicht mehr. In Berechnungen, bei denen keine Rundung nötig ist, garantiert [[IEEE 754]] ein exaktes Ergebnis. In vielen anderen Fällen beziehen sich die Rundungsfehler nur auf die letzten Stellen der Mantisse und fallen daher nicht auf, insbesondere wenn das Endergebnis erneut gerundet wird, um besser lesbar zu sein. Es gibt aber auch Fälle, in denen Rundungsfehler zu komplett anderen Ergebnissen führen.&lt;br /&gt;
&lt;br /&gt;
Für Computer ist das Rechnen mit Gleitkommazahlen aufwändiger als mit Ganzzahlen, da die Zahlen vor jedem Rechenschritt aneinander angeglichen werden müssen und die Zwischenergebnisse vor dem Runden viele Ziffern enthalten können. Die PCs in den 1980er Jahren hatten standardmäßig keinen [[Gleitkommaeinheit|Gleitkommaprozessor]]. Für wissenschaftliche Berechnungen gab es stattdessen [[Hochleistungsrechnen|Höchstleistungsrechner]] (number cruncher) mit speziellen Prozessoren für Gleitkommaberechnungen.&lt;br /&gt;
&lt;br /&gt;
=== Auslöschung ===&lt;br /&gt;
{{Hauptartikel|Auslöschung (numerische Mathematik)}}&lt;br /&gt;
&lt;br /&gt;
Unter Auslöschung versteht man den Effekt, dass bei der Subtraktion fast gleich großer Zahlen das Ergebnis falsch wird.&lt;br /&gt;
&lt;br /&gt;
=== Zahlen verschiedener Größenordnung (Absorption) ===&lt;br /&gt;
Die Addition bzw. Subtraktion einer betragsmäßig viel kleineren Zahl ändert die größere Zahl nicht.&lt;br /&gt;
&lt;br /&gt;
Im Beispiel der vierstelligen Dezimalarithmetik (&amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;p = 4&amp;lt;/math&amp;gt;) ändert die Addition von 0,001 zu 100 am größeren Operanden nichts. Dasselbe gilt für die Subtraktion:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Rechenbeispiel&lt;br /&gt;
|-&lt;br /&gt;
! Term !! Anmerkungen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;100 + 0{,}001&amp;lt;/math&amp;gt; || Die Ausgangsrechnung in mathematischer Schreibweise&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1{,}000\cdot 10^2 + 1{,}000\cdot 10^{-3}&amp;lt;/math&amp;gt; || Die gleiche Rechnung in Gleitkommaschreibweise, kein Runden nötig&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp; || Die Addition beginnt, ab hier wird intern mit beliebiger Genauigkeit gerechnet&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1{,}00000\cdot 10^2 + 0{,}00001 \cdot 10^{2}&amp;lt;/math&amp;gt; || Beide Operanden haben jetzt den gleichen Exponenten und die gleiche Mantissenlänge&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1{,}00001\cdot 10^2&amp;lt;/math&amp;gt; || Die Operanden werden ziffernweise addiert&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1{,}000\cdot 10^2&amp;lt;/math&amp;gt; || Das Ergebnis der Addition wird so gerundet, dass es ins Darstellungsformat passt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp; || Die Addition endet, ab hier wird nicht mehr mit beliebiger Genauigkeit gerechnet&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt; || Das Ergebnis in Dezimalschreibweise; die Addition hat nichts an der 100 geändert&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unterlauf ===&lt;br /&gt;
Liegt das Ergebnis eines Rechenschritts zwischen der kleinsten darstellbaren positiven Zahl und der 0, kann es zur 0 abgerundet werden. Dieses Abrunden wird Unterlauf (engl. underflow) genannt.&lt;br /&gt;
&lt;br /&gt;
=== Ungültigkeit der Assoziativ- und Distributivgesetze ===&lt;br /&gt;
Die Addition und die Multiplikation von Gleitkommazahlen sind nicht [[Assoziativgesetz|assoziativ]], das heißt die Ausdrücke &amp;lt;math&amp;gt;(x + y) + z&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;x + (y + z)&amp;lt;/math&amp;gt; sowie &amp;lt;math&amp;gt;(x \cdot y) \cdot z&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;x \cdot (y \cdot z)&amp;lt;/math&amp;gt; sind nicht äquivalent.&lt;br /&gt;
&lt;br /&gt;
Die Addition und Multiplikation von Gleitkommazahlen sind nicht [[Distributivgesetz|distributiv]], das heißt die Ausdrücke &amp;lt;math&amp;gt;x \cdot (y + z)&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;(x \cdot y) + (x \cdot z)&amp;lt;/math&amp;gt; sowie &amp;lt;math&amp;gt;(x + y) \cdot z&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;(x \cdot z) + (y \cdot z)&amp;lt;/math&amp;gt; sind nicht äquivalent.&lt;br /&gt;
&lt;br /&gt;
=== Lösbarkeit von Gleichungen ===&lt;br /&gt;
Bei Verwendung von Gleitkommaarithmetik haben viele Gleichungen andere Lösungsmengen als im Bereich der rationalen oder [[Reelle Zahl|reellen Zahlen]].&lt;br /&gt;
&lt;br /&gt;
;Beispiele (unter Verwendung einer vierstelligen Dezimal-Gleitkomma-Arithmetik)&lt;br /&gt;
&lt;br /&gt;
Die Gleichung &amp;lt;math&amp;gt;1 + x = 1&amp;lt;/math&amp;gt; hat im Bereich der rationalen Zahlen genau eine Lösung, nämlich &amp;lt;math&amp;gt;x = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Bei Verwendung von Gleitkomma-Arithmetik hat diese Gleichung viele Lösungen, nämlich alle Zahlen, die zu klein sind, um bei der Addition mit der Zahl &amp;lt;math&amp;gt;1{,}000&amp;lt;/math&amp;gt; das Ergebnis zu verändern. Je nach Rundungsregeln und Ausführung der Arithmetik sind das mindestens alle Zahlen mit &amp;lt;math&amp;gt;-0{,}000\,05 &amp;lt; x &amp;lt; 0{,}000\,5&amp;lt;/math&amp;gt;, maximal alle Zahlen &amp;lt;math&amp;gt;-0{,}001 &amp;lt; x &amp;lt; 0{,}001&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
1 - 5{,}000 \cdot 10^{-5} = 1{,}000 - 0{,}000\,050\,0 = 0{,}999|950\,0 = 1{,}000 = 1            \\&lt;br /&gt;
1 + 4{,}999 \cdot 10^{-4} = 1{,}000 + 0{,}000\,499\,9 = 1{,}000|499\,9 = 1{,}000 = 1            \\&lt;br /&gt;
1 + 5{,}000 \cdot 10^{-4} = 1{,}000 + 0{,}000\,500\,0 = 1{,}000|500\,0 = 1{,}000 = 1            \\&lt;br /&gt;
1 + 1{,}000 \cdot 10^{-3} = 1{,}000 + 0{,}001\,000\,0 = 1{,}001|000\,0 = 1{,}001 \neq 1         \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Gleichung &amp;lt;math&amp;gt;2 + x^2 = 8&amp;lt;/math&amp;gt; hat im Bereich der reellen Zahlen genau 2 Lösungen, nämlich &amp;lt;math&amp;gt;x = \pm\sqrt{6}&amp;lt;/math&amp;gt;, im Bereich der rationalen Zahlen keine Lösung.&lt;br /&gt;
&lt;br /&gt;
Bei Verwendung von Gleitkomma-Arithmetik hat diese Gleichung keine Lösung, da&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
2 + (2{,}449 \cdot 10^{0})^{2} = 2{,}000 + 5{,}997\,601 = 7{,}997|601 = 7{,}998 &amp;lt; 8 \\&lt;br /&gt;
2 + (2{,}450 \cdot 10^{0})^{2} = 2{,}000 + 6{,}002\,500 = 8{,}002|500 = 8{,}002 &amp;gt; 8 \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konversionen ===&lt;br /&gt;
Wenn die Basis verschieden von 10 ist, müssen die Zahlen zwischen dem vorliegenden Gleitkommasystem und dem Dezimalsystem konvertiert werden, um eine menschenlesbare Darstellung zu erhalten. Eine schon alte und wichtige Forderung an diese Konversion ist ihre bitgenaue Umkehrbarkeit: Eine Zahl, die im Gleitkommaformat vorliegt und dann im Dezimalsystem dargestellt wird, soll wieder eingelesen werden können und bitgenau dieselbe Darstellung im Gleitkommasystem reproduzieren.&lt;br /&gt;
&lt;br /&gt;
In vielen Programmiersprachen (C, C++, Python) wird diese Forderung nicht beachtet, dort gibt es in der Standardbibliothek keine Routinen, die eine exakte Umwandlung garantieren. Einige andere Programmiersprachen (Java, Scheme) liefern diese Umwandlungsroutinen bereits mit.&lt;br /&gt;
&lt;br /&gt;
=== Dezimalbrüche ===&lt;br /&gt;
{{Hauptartikel|Dezimalbruch}}&lt;br /&gt;
&lt;br /&gt;
Schon einfache Dezimalbrüche wie 0,1 können nicht exakt als binäre Gleitkommazahlen dargestellt werden, da jede rationale Zahl, deren [[gekürzter Bruch|gekürzter]] Nenner keine Zweierpotenz ist, im Binärsystem zu einer nicht abbrechenden, periodischen Darstellung führt. Von dieser werden nur die ersten &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; Ziffern gespeichert, wodurch Ungenauigkeit entsteht. Dezimal 0,1 ist binär 0,0001100110011… Allerdings wurde für binäre Gleitkommasysteme mit entsprechenden Rundungsregeln bewiesen, dass die Darstellung von 0,1 multipliziert mit 10 wieder exakt 1 ergibt. Allgemein gilt bei richtiger Rundung (m / 10) · 10 = m (Goldbergs Theorem 7&amp;lt;ref name=&amp;quot;goldberg&amp;quot;&amp;gt;{{Literatur |Autor=David Goldberg |Titel=What Every Computer Scientist Should Know About Floating-Point Arithmetic |Sammelwerk=ACM Computing Surveys |Band=23 |Datum=1991 |Seiten=5–48 |Online=http://docs.sun.com/source/806-3568/ncg_goldberg.html |Abruf=2010-09-02 |DOI=10.1145/103162.103163}}&amp;lt;/ref&amp;gt; für den konkreten Fall n = 2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; + 2&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; = 10).&lt;br /&gt;
&lt;br /&gt;
In Disziplinen wie der [[Finanzmathematik]] werden oft Ergebnisse verlangt, die mit einer dezimalen Handrechnung exakt übereinstimmen. Für diesen Anwendungsbereich sind Gleitkommazahlen ungeeignet, stattdessen wird dort dezimale Festkommaarithmetik eingesetzt.&lt;br /&gt;
&lt;br /&gt;
=== Prüfung auf Gleichheit ===&lt;br /&gt;
Die im Abschnitt [[#Dezimalbrüche|Dezimalbrüche]] genannte Einschränkung, dass viele dieser Dezimalzahlen im [[Dualsystem|Binärsystem]] eines [[Computer]]s nicht exakt dargestellt werden können, hat beim Programmieren Auswirkungen auf Vergleiche &amp;lt;math&amp;gt;x=y&amp;lt;/math&amp;gt; zwischen Gleitkommazahlen.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel gilt mathematisch: &amp;lt;math&amp;gt;0{,}362 \cdot 100 = 36{,}2&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;0{,}362 \cdot 100 / 100 = 0{,}362&amp;lt;/math&amp;gt;. Beim Rechnen im Darstellungsformat „IEEE 754 double“ treten jedoch die folgenden Rundungsfehler auf, so dass diese Gleichungen dort nicht gelten.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Rundung von Gleitkommazahlen&lt;br /&gt;
|-&lt;br /&gt;
! Dezimalzahl !! Gleitkommazahl IEEE 754 double !! Anmerkung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;0{,}362&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0{,}36199999999999998845368054389837197959423065185546875&amp;lt;/math&amp;gt; || abgerundet&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;0{,}362 \cdot 100&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;\hphantom{0} 36{,}19999999999999573674358543939888477325439453125&amp;lt;/math&amp;gt; || nach dem Multiplizieren wird erneut abgerundet&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;36{,}2&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;\hphantom{0} 36{,}2000000000000028421709430404007434844970703125&amp;lt;/math&amp;gt; || aufgerundet&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;(0{,}362 \cdot 100) / 100&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0{,}361999999999999932942529312640544958412647247314453125&amp;lt;/math&amp;gt; || nach dem Dividieren wird erneut abgerundet&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;0{,}362&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0{,}36199999999999998845368054389837197959423065185546875&amp;lt;/math&amp;gt; || abgerundet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vergleiche auf exakte Gleichheit müssen deshalb durch eine Abfrage ersetzt werden, ob die zu vergleichenden Werte im Rahmen einer erreichbaren Genauigkeit &amp;lt;math&amp;gt;\varepsilon&amp;lt;/math&amp;gt; (meist &amp;#039;&amp;#039;Toleranz&amp;#039;&amp;#039; genannt) als gleich angesehen werden können.&lt;br /&gt;
&lt;br /&gt;
Toleriert man beim Vergleich einen absoluten Fehler, lautet eine mögliche Formulierung &amp;lt;math&amp;gt;\vert x - y\vert \le \varepsilon&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Toleriert man beim Vergleich einen relativen Fehler, lautet eine mögliche Formulierung &amp;lt;math&amp;gt;\vert 1 - \tfrac yx\vert \le \varepsilon&amp;lt;/math&amp;gt;. Der zweite Fall muss meist noch mit der Sonderfallabfrage &amp;lt;math&amp;gt;x \ne 0&amp;lt;/math&amp;gt; verbunden werden.&lt;br /&gt;
&lt;br /&gt;
=== Versteckte Verwendung anderer Darstellungen ===&lt;br /&gt;
CPUs, Compiler und Bibliotheken stellen so gut wie immer verschiedene Gleitkommaformate zur Verfügung. Welche das sind, hängt von dem Zusammenspiel aus verwendeten CPU/FPU/GPU, dem verwendeten Compiler/Sprache und den verwendeten Optionen und den verwendeten Bibliotheken ab.&lt;br /&gt;
Die Gleitkommaeinheiten des [[Intel 8087]] und des [[Motorola 68881]] unterstützen zum Beispiel ein Darstellungsformat mit 64 Bit unnormalisierter Mantisse, das genauer als das Darstellungsformat IEEE 754 binary64 mit seinen 53 Bit normalisierter Mantisse ist. Wird eine Zahl vom größeren Darstellungsformat in das kleinere Darstellungsformat umgewandelt, wird es entsprechend gerundet und verliert dadurch die letzten Stellen der Mantisse.&lt;br /&gt;
Je nachdem, ob die Zwischenergebnisse von Rechnungen im internen Darstellungsformat oder im externen Darstellungsformat gespeichert werden, können selbst identische Ausdrücke wie etwa &amp;lt;math&amp;gt;\cos(0{,}2)&amp;lt;/math&amp;gt; zu unterschiedlichen Ergebnissen führen.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Wiktionary|Fließkommazahl}}&lt;br /&gt;
{{Wiktionary}}&lt;br /&gt;
* Robert Munafo: [https://www.mrob.com/pub/math/floatformats.html &amp;#039;&amp;#039;Survey of Floating-Point Formats&amp;#039;&amp;#039; – Übersicht über historische Gleitkommaformate] (englisch)&lt;br /&gt;
* David Goldberg: [https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html &amp;#039;&amp;#039;What Every Computer Scientist Should Know About Floating-Point Arithmetic&amp;#039;&amp;#039;.] (englisch)&lt;br /&gt;
* David Monniaux: [https://hal.science/hal-00128124 &amp;#039;&amp;#039;The pitfalls of verifying floating-point computations&amp;#039;&amp;#039;] (englisch)&lt;br /&gt;
* H. Schmidt: [https://www.h-schmidt.net/FloatConverter/IEEE754de.html &amp;#039;&amp;#039;IEEE-754 Konverter für Fließkommazahlen&amp;#039;&amp;#039;]: Interaktiver Emulator für die normgerechte Repräsentation von Gleitkommazahlen.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Zahl|*]]&lt;br /&gt;
[[Kategorie:Mathematische Notation]]&lt;br /&gt;
[[Kategorie:Numerische Mathematik]]&lt;br /&gt;
[[Kategorie:Computerarithmetik]]&lt;br /&gt;
[[Kategorie:Datentyp]]&lt;br /&gt;
[[Kategorie:Normalform]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Dk1909</name></author>
	</entry>
</feed>