Unterschied float und double?
Kann mir jemand den Unterschied zwischen floating point (Fließkomma) und double erklären? Also abgesehen von der maximalen Speichermenge.
2 Antworten
Es sind beides Fließkomma-Attribute. DOUBLE ist genauer, braucht die doppelte Anzahl Bytes.
Die Anzahl der Bytes kann unterschiedlich von Programmiersprache zu Programmiersprache sein, aber die Anzahl der Bytes ist, die verwendet werden, ist fest, bei DOUBLE eben das Doppelte von dem Speicherplatz für FLOAT.
Bei Berechnungen mit vielen Stellen hinterm Komma oder bei sehr großen Zahlen ist DOUBLE angebracht.
Heutzutage (64-Bit CPU) ist Double eigentlich immer angebracht wenn man nicht sehr viele Werte verfügbar halten muss und knapp mit Speicher oder Übertragungsbandbreite ist. Kürzlich selbst getestet: Rechenvorgänge mit Double sind schneller als mit Float.
von der Speichergröße und (ungefähr) von der Anzahl der signifikanten Stellen her : ja.
Der darstellbare Zahlenbereich ist aber nicht doppelt so groß, sondern etwa 10^270 mal so groß!
Das ist aber gerade der Unterschied. Float hat die Hälfte der Bits (z.B. 32 bit), die double hat (z.B. 64 bit). Double ist ja gerade "double precision", also Fließkommazahlen können mit doppelter Präzision/Genauigkeit abgespeichert werden.
Ah danke, jetzt hab ich es verstanden
Dh auf einem Intel 8086 bringe ich keinen double zum laufen? Der hat ja nur 32 bit
Man kann auch mit einer 32Bit-Architektur ein 64-Bit double realisieren bzw. generell 64-Bit Rechenoperationen durchführen. Ist nur viel umständlicher zu realisieren.
Das kommt auf die Floating-Point-Unit an. Die Breite der Standardregister hat damit ja erst mal nichts zu tun. Wenn da 'ne Floating-Point-Unit nach IEEE-Standard dabei ist, dann schon. (Die rechnen dann mit 80 bit intern)
Also kurzgesagt so groß wie 2 Floats.