www.wikidata.de-de.nina.az
Eine Gleitkommazahl englisch floating point number wird in zwei Zusammenhangen benutzt fur die praktischere Schreibweise sehr grosser und sehr kleiner Zahlen in wissenschaftlicher Notation Gleitkomma bzw Exponentialschreibweise sowie fur die Reprasentation von Zahlen in wissenschaftlichen Taschenrechnern und in Computern Exakt darstellbare Gleitkomma zahlen fur verschiedene Mantissen langen Basis 2 Exponent 3 bis 1 Im Gegensatz zu Festkommazahlen zu denen auch die Ganzzahlen gehoren wird die Zahl in einen Exponenten der die Grossenordnung festlegt und eine Mantisse die den Wert genauer spezifiziert aufgespalten Beide Verwendungen sind miteinander verwandt weisen aber signifikante Unterschiede auf Wahrend erstere eine alternative Schreibweise fur Zahlen ist wie auch die Darstellung in anderen Basen und keinen Einfluss auf die Zahl selbst hat stellt zweiteres ein Speicherformat fur rationale Zahlen in der Datenverarbeitung dar und ermoglicht Zahlenformate mit grossen Wertebereich und gleichmassiger relativer Genauigkeit uber den Wertebereich Gleitkommazahlen bestehen aus einer festen Anzahl von Ziffern die gemass 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 grossen Zahlenraum ab und bietet durch die feste Anzahl von ausgeschriebenen Ziffern eine gute Genauigkeit Ob eine gegebene rationale Zahl eine Gleitkommazahl ist hangt nicht von der Zahl selbst ab sondern von dem gewahlten 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 Inhaltsverzeichnis 1 Geschichtliche Entwicklung 2 Schreibweisen 2 1 Festkommaschreibweise 2 2 Exponentialschreibweise 2 3 Schreibweisen fur Gleitkommazahlen 3 Wertemengen 3 1 Beispiel 4 Speicherformate 4 1 Rechenbeispiel 5 Gleitkommaarithmetik 5 1 Ausloschung 5 2 Zahlen verschiedener Grossenordnung Absorption 5 3 Unterlauf 5 4 Ungultigkeit der Assoziativ und Distributivgesetze 5 5 Losbarkeit von Gleichungen 5 6 Konversionen 5 7 Dezimalbruche 5 8 Prufung auf Gleichheit 5 9 Versteckte Verwendung anderer Darstellungen 6 Siehe auch 7 Weblinks 8 EinzelnachweiseGeschichtliche Entwicklung BearbeitenDie erste dokumentierte Verwendung der Gleitkommaschreibweise fand im Jahr 1750 v Chr statt Im Zweistromland Mesopotamien wurden wissenschaftliche Rechnungen mit der Basis b 60 displaystyle b 60 nbsp durchgefuhrt und der Exponent eine meistens kleine ganze Zahl im Kopf mitgefuhrt 1 2 3 4 Dasselbe Vorgehen war bei Berechnungen mit einem Rechenschieber ublich Im Jahr 1913 schrieb der spanische Ingenieur Leonardo Torres Quevedo seine Essays on Automatics und fuhrte darin erstmals die Idee der Gleitkomma Arithmetik in Computer ein 5 Die erste Verwendung einer Gleitkommadarstellung in Computern war 1937 von Konrad Zuse in seinen Computern Z1 und Z3 6 Das heute haufigste 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 fur Gleitkomma Dezimalzahlen also Basis 10 statt Basis 2 Beide Normen wurden in der uberarbeiteten Fassung IEEE 754 2008 zusammengefuhrt und erweitert Schreibweisen BearbeitenFestkommaschreibweise Bearbeiten nbsp Registrierkasse mit 3 Stellen vor dem Komma und 2 NachkommastellenDas Rechenwerk von mechanischen und elektronischen Rechenmaschinen arbeitet mit Zahlen fester Lange Beispiele dafur sind mechanische Registrierkassen bei denen im Anzeigebereich eine feste Anzahl von Ziffern verbaut ist Registrierkassen werden eingesetzt um Geldbetrage zu addieren In den meisten Wahrungen werden Geldbetrage mit zwei Nachkommastellen angegeben und die Betrage haben insbesondere im Einzelhandel eine praktische Obergrenze daher reicht fur 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 heisst 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 Bearbeiten Im naturwissenschaftlichen Bereich ist der Zahlenraum deutlich grosser bei Langenangaben reicht er vom Atomradius von Wasserstoff etwa 0 000 000 000 032 Meter bzw 32 Pikometer bis zum Lichtjahr etwa 9 460 000 000 000 000 Meter bzw 9 46 Billionen Kilometer und daruber hinaus Bei so grossen oder kleinen Zahlen ist die Schreibweise durch die vielen Nullen unubersichtlich 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 32 10 12 und 9 46 1015 deutlich kurzer und dadurch einfacher zu erkennen Die hinter der Basis 10 hochgestellte 12 bzw 15 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 hangt eng mit der Anzahl der vorgesehenen signifikanten Stellen zusammen Schreibweisen fur Gleitkommazahlen Bearbeiten Wissenschaftliche Notation mit konsequenter Normalisierung auf 1 m lt 10 displaystyle 1 leq m lt 10 nbsp Beispiel 10000 1e 4 Technische Notation mit Normalisierung auf 1 f m lt 1000 displaystyle 1 f leq m lt 1000 nbsp mit f als Potenz der Anzahl der verbleibenden signifikanten Stellen der Messunsicherheit fur die Rechengenauigkeit denormalisierte Stellen Im Exponent erscheinen nur Vielfache von 3 diese Darstellung lasst sich beim Rechnen mit Masseinheiten sowohl zwanglos in die Einheitenvorsatze als auch die Zifferngruppierung mit Tausendertrennzeichnung uberfuhren bzw sich daraus erzeugen Beispiel 10 000 m 10e 3 m 10 km Signifikanz 10 00e 3 m 10 000 5 m 4 signifikante Stellen bezuglich Messung in Kilometern mit Rundung aber 0 01e 6 m 10 000 5000 m 2 signifikante Stellen bezuglich Messung in Mm wobei die prazisen Angaben uber Standard und erweiterte Messunsicherheit DIN 1319 3 bzw dem ISO BIPM Guide GUM ENV 13005 folgenIn Programmiersprachen wird fur die Notation von Gleitkommazahlen im Quelltext und fur ihre Ein und Ausgabe eine kompakte Variante der Exponentialschreibweise verwendet z B 2 99792458e8 2 997 924 58 108 Das e steht fur mal 10 hoch In der Sprache Algol 60 war dafur ein eigenes Zeichen Basiszehn vorgesehen das zwar auf manchen Ein und Ausgabegeraten 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 BearbeitenEs gibt zahlreiche unterschiedliche Darstellungsformate fur 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 fur eine einzelne Zahl und besonderen Darstellungsformen fur betragsmassig kleine Zahlen unendlich und aus praktischen Grunden Elemente die keine Zahlen sind zum Beispiel um fehlerhafte Rechenergebnisse zu markieren Ein Darstellungsformat fur Gleitkommazahlen definiert anhand mehrerer Parameter welche Zahlen in dem Format darstellbar sind Die Basis b displaystyle b nbsp 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 fur menschenfreundliche Darstellungen zum Beispiel auf wissenschaftlichen Taschenrechnern Die Basis 2 mit den Ziffern 0 und 1 ist fur elektronische Schaltungen insbesondere Computer ideal Alle weiteren Basen sind exotisch Die Anzahl der signifikanten Ziffern p displaystyle p nbsp legt fest mit welcher Genauigkeit die darstellbaren Zahlen angegeben werden konnen Die Ziffern selbst heissen Mantisse Taschenrechner zeigen ublicherweise 8 bis 10 Dezimalstellen an rechnen aber intern haufig mit mehr Stellen Die seit 1985 ublichen Darstellungsformate fur Computer haben eine Genauigkeit von 24 bzw 53 Binarstellen das sind umgerechnet etwa 7 bzw 15 Dezimalstellen Die feste Position des Kommas in der Mantisse Das Komma steht ublicherweise zwischen der ersten und der zweiten Stelle die Mantisse hat also die Form m m m m m m m displaystyle m mmmmmm cdots nbsp Der minimale Exponent e min displaystyle e textit min nbsp legt fest um wie viele Stellen das Komma maximal nach links verschoben werden kann Der maximale Exponent e max displaystyle e textit max nbsp legt fest um wie viele Stellen das Komma maximal nach rechts verschoben werden kann Der Wert w displaystyle w nbsp einer Zahl ergibt sich nach der Formel w v m b e displaystyle w v cdot m cdot b e nbsp Hierbei ist v displaystyle v nbsp das Vorzeichen der Zahl entweder 1 displaystyle 1 nbsp oder 1 displaystyle 1 nbsp m displaystyle m nbsp die Mantisse der Zahl b displaystyle b nbsp die Basis des Darstellungsformats und e displaystyle e nbsp 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 Einschrankung gibt es zu jeder darstellbaren Zahl nur noch eine mogliche Schreibweise Eine Nebenwirkung dieser Einschrankung ist jedoch dass die Zahl 0 nicht mehr darstellbar ist da ihre Darstellung ausschliesslich aus Nullen besteht Daher muss eine weitere Regel eingefuhrt werden um die Zahl 0 darzustellen Eine Moglichkeit ist auf die Normalisierung zu verzichten wenn der Exponent der Zahl gleich dem e min displaystyle e textit min nbsp des Darstellungsformats ist Dadurch bleibt die Eindeutigkeit bestehen so dass es zu jeder darstellbaren Zahl genau eine mogliche Schreibweise gibt Beispiel Bearbeiten Ein haufiges Darstellungsformat fur die Anzeige von Zahlen auf wissenschaftlichen Taschenrechnern ist Basis 10 mit den Ziffern 0 bis 9 10 Stellen Genauigkeit fur die Mantisse normalisierte Mantisse mit 1 Stelle vor dem Komma Exponenten von 99 displaystyle 99 nbsp bis 99 displaystyle 99 nbsp Die Zahl mit der Darstellung v 1 m 9 460 730 5 e 15 displaystyle v 1 m 9 460 730 5 e 15 nbsp hat damit den Wert 9 460 730 5 10 15 displaystyle 9 460 730 5 cdot 10 15 nbsp oder als ganze Zahl geschrieben 9 460 730 500 000 000 displaystyle 9 460 730 500 000 000 nbsp Die betragsmassig kleinste darstellbare Zahl in diesem Darstellungsformat ist 0 000 000 0 10 99 displaystyle 0 000 000 0 cdot 10 99 nbsp also 0 die grosste darstellbare Zahl ist 9 999 999 9 10 99 displaystyle 9 999 999 9 cdot 10 99 nbsp das ist eine 100 stellige Zahl Speicherformate BearbeitenBei der Verarbeitung in Computern werden Gleitkommazahlen in einem Speicherbereich fester Grosse 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 Abwagung Einerseits sollen die Zahlen moglichst exakt gespeichert werden und dabei einen grossen Zahlenraum abdecken andererseits soll der Speicherbedarf moglichst gering sein Der minimale Speicherbedarf ergibt sich aus den Parametern des Darstellungsformats Um eine Gleitkommazahl aus dem Darstellungsformat mit der Basis b 2 displaystyle b 2 nbsp der Genauigkeit p displaystyle p nbsp Binarstellen und einem Exponenten im Bereich von e min displaystyle e textit min nbsp bis e max displaystyle e textit max nbsp zu speichern benotigt man fur das Vorzeichen 1 Bit da es 2 mogliche Werte hat fur die Mantisse p displaystyle p nbsp Bit da jede Stelle der Mantisse wegen der Basis 2 genau 1 Bit Speicherplatz benotigt fur den Exponenten e displaystyle e nbsp so viele Bits dass jede ganze Zahl von e min displaystyle e textit min nbsp bis e max displaystyle e textit max nbsp gespeichert werden kann also log 2 1 e max e min displaystyle left lceil log 2 left 1 e textit max e textit min right right rceil nbsp Bei Gleitkommazahlen mit der Basis 2 ist es moglich 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 ware die Zahl nicht normalisiert Da es im Binarsystem nur die Ziffern 0 und 1 gibt muss die erste Ziffer also 1 sein Diese Ziffer ist also bereits bekannt und muss daher nicht fur jede Zahl abgespeichert werden Dadurch ergibt sich eine Ersparnis von 1 Bit so dass fur die Mantisse nur p 1 displaystyle p 1 nbsp Bit benotigt werden Wird diese Moglichkeit genutzt wird von einem hidden bit engl wortlich verstecktes Bit gesprochen Das Speicherformat definiert nicht nur wie viele Bits zum Speichern einer Gleitkommazahl notig sind sondern auch welche Teile der Zahl in welchem Bit gespeichert werden Zusatzlich zu den Zahlen mit normalisierter Mantisse kann das Speicherformat auch definieren wie unnormalisierte Zahlen gespeichert werden und ob es weitere Sonderfalle wie unendlich und NaN engl not a number fur ungultige Rechenergebnisse gibt Speicherbedarf fur Gleitkommazahlen Speicherformat Bits fur AnmerkungenMantisse Exponent gesamtIEEE 754 binary16 2008 10 5 16 Die Mantisse ist normalisiert siehe MinifloatZ1 1937 16 7 24 Die Mantisse ist normalisiert Rechnen mit 0 ist nicht moglich 6 IEEE 754 binary32 1985 23 8 32 Die Mantisse ist normalisiert IBM S 390 single 24 7 32IBM 704 binar 27 8 36 Die Mantisse ist nicht normalisiert IBM 704 dezimal 36 Basis 10 statt 2 weitere Details stehen nicht im HandbuchPDP 10 27 8 36Telefunken TR 4 TR 440 38 8 47 3 Basis b 16 displaystyle b 16 nbsp PERM 1956 40 9 50 1 Es gibt 3 verschiedene Gleitkomma Arithmetiken CDC 6600 47 12 60IEEE 754 binary64 1985 52 11 64 Die Mantisse ist normalisiert IBM S 390 double 56 7 64Intel 8087 extended 64 15 80 Die Mantisse ist nicht normalisiert IEEE 754 binary128 2008 112 15 128 Die Mantisse ist normalisiert Die Gesamtanzahl der zu speichernden Bits ergibt sich aus 1 Vorzeichenbit Mantissenbits Exponentenbits Eine Angabe der Gestalt z m displaystyle z m nbsp fur die Gesamtlange bedeutet dass die Zahl im Speicher in Einheiten von z m displaystyle z m nbsp Bit gespeichert wird von denen aber nur z displaystyle z nbsp Bit fur den Zahlenwert relevant sind und m displaystyle m nbsp weitere fur andere Zwecke genutzt werden konnen Daruber hinaus konnen weitere Bits zu Hardware Prufzwecken mitgespeichert werden stehen aber dem Programmierer nicht zur Verfugung Rechenbeispiel Bearbeiten Im Format IEEE 754 binary32 ist b 2 displaystyle b 2 nbsp p 24 displaystyle p 24 nbsp e min 126 displaystyle e textit min 126 nbsp und e max 127 displaystyle e textit max 127 nbsp der benotigte Speicherplatz ist daher fur das Vorzeichen 1 Bit fur die normalisierte Mantisse 24 1 23 displaystyle 24 1 23 nbsp Bit fur den Exponenten log 2 1 127 126 log 2 254 log 2 256 8 displaystyle left lceil log 2 left 1 127 126 right right rceil left lceil log 2 254 right rceil log 2 256 8 nbsp Bit insgesamt also 32 Bit Gleitkommaarithmetik BearbeitenBeim Rechnen mit allgemeinen rationalen Zahlen Bruchrechnung ist das Ergebnis einer Addition Subtraktion Multiplikation und Division stets wieder eine rationale Zahl mit einer einzigen Ausnahme der Division durch 0 Diese Eigenschaft der Abgeschlossenheit fallt beim Rechnen mit Gleitkommazahlen weg da die Menge der darstellbaren Zahlen begrenzt ist Die Zwischenergebnisse mussen daher nach jedem Schritt gerundet werden damit sie in das Darstellungsformat passen Durch dieses Runden entstehen beim Rechnen mit Gleitkommazahlen uberraschende Ergebnisse Insbesondere gelten die aus der Bruchrechnung bekannten Rechenregeln nicht mehr In Berechnungen bei denen keine Rundung notig ist garantiert IEEE 754 ein exaktes Ergebnis In vielen anderen Fallen 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 Falle in denen Rundungsfehler zu komplett anderen Ergebnissen fuhren Fur Computer ist das Rechnen mit Gleitkommazahlen aufwandiger als mit Ganzzahlen da die Zahlen vor jedem Rechenschritt aneinander angeglichen werden mussen und die Zwischenergebnisse vor dem Runden viele Ziffern enthalten konnen Die PCs in den 1980er Jahren hatten standardmassig keinen Gleitkommaprozessor Fur wissenschaftliche Berechnungen gab es stattdessen Hochstleistungsrechner number cruncher mit speziellen Prozessoren fur Gleitkommaberechnungen Ausloschung Bearbeiten Hauptartikel Ausloschung numerische Mathematik Unter Ausloschung versteht man den Effekt dass bei der Subtraktion fast gleich grosser Zahlen das Ergebnis falsch wird Zahlen verschiedener Grossenordnung Absorption Bearbeiten Die Addition bzw Subtraktion einer betragsmassig viel kleineren Zahl andert die grossere Zahl nicht Im Beispiel der vierstelligen Dezimalarithmetik b 10 displaystyle b 10 nbsp p 4 displaystyle p 4 nbsp andert die Addition von 0 001 zu 100 am grosseren Operanden nichts Dasselbe gilt fur die Subtraktion Rechenbeispiel Term Anmerkungen100 0 001 displaystyle 100 0 001 nbsp Die Ausgangsrechnung in mathematischer Schreibweise1 000 10 2 1 000 10 3 displaystyle 1 000 cdot 10 2 1 000 cdot 10 3 nbsp Die gleiche Rechnung in Gleitkommaschreibweise kein Runden notig Die Addition beginnt ab hier wird intern mit beliebiger Genauigkeit gerechnet1 000 00 10 2 0 000 01 10 2 displaystyle 1 00000 cdot 10 2 0 00001 cdot 10 2 nbsp Beide Operanden haben jetzt den gleichen Exponenten und die gleiche Mantissenlange1 000 01 10 2 displaystyle 1 00001 cdot 10 2 nbsp Die Operanden werden ziffernweise addiert1 000 10 2 displaystyle 1 000 cdot 10 2 nbsp Das Ergebnis der Addition wird so gerundet dass es ins Darstellungsformat passt Die Addition endet ab hier wird nicht mehr mit beliebiger Genauigkeit gerechnet100 displaystyle 100 nbsp Das Ergebnis in Dezimalschreibweise die Addition hat nichts an der 100 geandertUnterlauf Bearbeiten 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 Ungultigkeit der Assoziativ und Distributivgesetze Bearbeiten Die Addition und die Multiplikation von Gleitkommazahlen sind nicht assoziativ das heisst die Ausdrucke x y z displaystyle x y z nbsp und x y z displaystyle x y z nbsp sowie x y z displaystyle x cdot y cdot z nbsp und x y z displaystyle x cdot y cdot z nbsp sind nicht aquivalent Die Addition und Multiplikation von Gleitkommazahlen sind nicht distributiv das heisst die Ausdrucke x y z displaystyle x cdot y z nbsp und x y x z displaystyle x cdot y x cdot z nbsp sowie x y z displaystyle x y cdot z nbsp und x z y z displaystyle x cdot z y cdot z nbsp sind nicht aquivalent Losbarkeit von Gleichungen Bearbeiten Bei Verwendung von Gleitkommaarithmetik haben viele Gleichungen andere Losungsmengen als im Bereich der rationalen oder reellen Zahlen Beispiele unter Verwendung einer vierstelligen Dezimal Gleitkomma Arithmetik Die Gleichung 1 x 1 displaystyle 1 x 1 nbsp hat im Bereich der rationalen Zahlen genau eine Losung namlich x 0 displaystyle x 0 nbsp Bei Verwendung von Gleitkomma Arithmetik hat diese Gleichung viele Losungen namlich alle Zahlen die zu klein sind um bei der Addition mit der Zahl 1 000 displaystyle 1 000 nbsp das Ergebnis zu verandern Je nach Rundungsregeln und Ausfuhrung der Arithmetik sind das mindestens alle Zahlen mit 0 000 05 lt x lt 0 000 5 displaystyle 0 000 05 lt x lt 0 000 5 nbsp maximal alle Zahlen 0 001 lt x lt 0 001 displaystyle 0 001 lt x lt 0 001 nbsp 1 5 000 10 5 1 000 0 000 050 0 0 999 950 0 1 000 1 1 4 999 10 4 1 000 0 000 499 9 1 000 499 9 1 000 1 1 5 000 10 4 1 000 0 000 500 0 1 000 500 0 1 000 1 1 1 000 10 3 1 000 0 001 000 0 1 001 000 0 1 001 1 displaystyle begin aligned 1 5 000 cdot 10 5 1 000 0 000 050 0 0 999 950 0 1 000 1 1 4 999 cdot 10 4 1 000 0 000 499 9 1 000 499 9 1 000 1 1 5 000 cdot 10 4 1 000 0 000 500 0 1 000 500 0 1 000 1 1 1 000 cdot 10 3 1 000 0 001 000 0 1 001 000 0 1 001 neq 1 end aligned nbsp Die Gleichung 2 x 2 8 displaystyle 2 x 2 8 nbsp hat im Bereich der reellen Zahlen genau 2 Losungen namlich x 6 displaystyle x pm sqrt 6 nbsp im Bereich der rationalen Zahlen keine Losung Bei Verwendung von Gleitkomma Arithmetik hat diese Gleichung keine Losung da2 2 449 10 0 2 000 5 997 601 7 997 601 7 998 lt 8 2 2 450 10 0 2 000 6 002 500 8 002 500 8 002 gt 8 displaystyle begin aligned 2 2 449 cdot 10 0 2 000 5 997 601 7 997 601 7 998 lt 8 2 2 450 cdot 10 0 2 000 6 002 500 8 002 500 8 002 gt 8 end aligned nbsp Konversionen Bearbeiten Wenn die Basis verschieden von 10 ist mussen 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 konnen und bitgenau dieselbe Darstellung im Gleitkommasystem reproduzieren 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 Dezimalbruche Bearbeiten Hauptartikel Dezimalbruch Schon einfache Dezimalbruche wie 0 1 konnen nicht exakt als binare Gleitkommazahlen dargestellt werden da jede rationale Zahl deren gekurzter Nenner keine Zweierpotenz ist im Binarsystem zu einer nicht abbrechenden periodischen Darstellung fuhrt Von dieser werden nur die ersten p displaystyle p nbsp Ziffern gespeichert wodurch Ungenauigkeit entsteht Dezimal 0 1 ist binar 0 0001100110011 Allerdings wurde fur binare 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 7 fur den konkreten Fall n 21 23 10 In Disziplinen wie der Finanzmathematik werden oft Ergebnisse verlangt die mit einer dezimalen Handrechnung exakt ubereinstimmen Fur diesen Anwendungsbereich sind Gleitkommazahlen ungeeignet stattdessen wird dort dezimale Festkommaarithmetik eingesetzt Prufung auf Gleichheit Bearbeiten Die im Abschnitt Dezimalbruche genannte Einschrankung dass viele dieser Dezimalzahlen im Binarsystem eines Computers nicht exakt dargestellt werden konnen hat beim Programmieren Auswirkungen auf Vergleiche x y displaystyle x y nbsp zwischen Gleitkommazahlen Zum Beispiel gilt mathematisch 0 362 100 36 2 displaystyle 0 362 cdot 100 36 2 nbsp und 0 362 100 100 0 362 displaystyle 0 362 cdot 100 100 0 362 nbsp Beim Rechnen im Darstellungsformat IEEE 754 double treten jedoch die folgenden Rundungsfehler auf so dass diese Gleichungen dort nicht gelten Rundung von Gleitkommazahlen Dezimalzahl Gleitkommazahl IEEE 754 double Anmerkung0 362 displaystyle 0 362 nbsp 0 361 99999999999998845368054389837197959423065185546875 displaystyle 0 36199999999999998845368054389837197959423065185546875 nbsp abgerundet0 362 100 displaystyle 0 362 cdot 100 nbsp 0 36 199 99999999999573674358543939888477325439453125 displaystyle hphantom 0 36 19999999999999573674358543939888477325439453125 nbsp nach dem Multiplizieren wird erneut abgerundet36 2 displaystyle 36 2 nbsp 0 36 200 0000000000028421709430404007434844970703125 displaystyle hphantom 0 36 2000000000000028421709430404007434844970703125 nbsp aufgerundet0 362 100 100 displaystyle 0 362 cdot 100 100 nbsp 0 361 999999999999932942529312640544958412647247314453125 displaystyle 0 361999999999999932942529312640544958412647247314453125 nbsp nach dem Dividieren wird erneut abgerundet0 362 displaystyle 0 362 nbsp 0 361 99999999999998845368054389837197959423065185546875 displaystyle 0 36199999999999998845368054389837197959423065185546875 nbsp abgerundetVergleiche auf exakte Gleichheit mussen deshalb durch eine Abfrage ersetzt werden ob die zu vergleichenden Werte im Rahmen einer erreichbaren Genauigkeit e displaystyle varepsilon nbsp meist Toleranz genannt als gleich angesehen werden konnen Toleriert man beim Vergleich einen absoluten Fehler lautet eine mogliche Formulierung x y e displaystyle vert x y vert leq varepsilon nbsp Toleriert man beim Vergleich einen relativen Fehler lautet eine mogliche Formulierung 1 y x e displaystyle vert 1 tfrac y x vert leq varepsilon nbsp Der zweite Fall muss meist noch mit der Sonderfallabfrage x 0 displaystyle x neq 0 nbsp verbunden werden Versteckte Verwendung anderer Darstellungen Bearbeiten CPUs Compiler und Bibliotheken stellen so gut wie immer verschiedene Gleitkommaformate zur Verfugung Welche das sind hangt von dem Zusammenspiel aus verwendeten CPU FPU GPU dem verwendeten Compiler Sprache und den verwendeten Optionen und den verwendeten Bibliotheken ab Die Gleitkommaeinheiten des Intel 8087 und des Motorola 68881 unterstutzen 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 grosseren Darstellungsformat in das kleinere Darstellungsformat umgewandelt wird es entsprechend gerundet und verliert dadurch die letzten Stellen der Mantisse Je nachdem ob die Zwischenergebnisse von Rechnungen im internen Darstellungsformat oder im externen Darstellungsformat gespeichert werden konnen selbst identische Ausdrucke wie etwa cos 0 2 displaystyle cos 0 2 nbsp zu unterschiedlichen Ergebnissen fuhren Siehe auch BearbeitenEinfache Genauigkeit Doppelte Genauigkeit Integer Datentyp Weblinks Bearbeiten nbsp Wiktionary Fliesskommazahl Bedeutungserklarungen Wortherkunft Synonyme Ubersetzungen nbsp Wiktionary Gleitkommazahl Bedeutungserklarungen Wortherkunft Synonyme Ubersetzungen Robert Munafo Survey of Floating Point Formats Ubersicht uber historische Gleitkommaformate englisch David Goldberg What Every Computer Scientist Should Know About Floating Point Arithmetic englisch David Monniaux The pitfalls of verifying floating point computations englisch Online Binary Decimal Converter englisch Einzelnachweise Bearbeiten 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 Brian Randell From Analytical Engine to Electronic Digital Computer The Contributions of Ludgate Torres and Bush Archiviert vom Original am 21 September 2013 abgerufen am 9 September 2013 englisch a b Rojas R Roder J amp Nguyen H Die Prozessorarchitektur der Rechenmaschine Z1 Informatik Spektrum 37 341 347 2014 https doi org 10 1007 s00287 013 0749 1 David Goldberg What Every Computer Scientist Should Know About Floating Point Arithmetic In ACM Computing Surveys Band 23 1991 S 5 48 doi 10 1145 103162 103163 sun com abgerufen am 2 September 2010 Abgerufen von https de wikipedia org w index php title Gleitkommazahl amp oldid 236893967