Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++

Gleitkommazahlen in C++ (float, double, long double ...)

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Lernen Sie anhand kleiner Beispiele, wie Sie Gleitkommazahlen richtig verwenden, wo deren Einsatzgebiete liegen und was der Begriff "Überlauf" bedeutet.

Transkript

Bisher hatten wir eigentlich nur mit ganzen Zahlen zu tun, also Zahlen 1,2,3,4,5 und so weiter. Integerwerten, auch Characters gehören ja irgendwie dazu. Jetzt zeige ich Ihnen mal, was man mit Gleitkommazahlen machen kann. Da gibt es eigentlich im Wesentlichen zwei verschiedene Arten von Gleitkommazahlen die interessant sind, das ist das Float-Gleitkomma. Float, floating heißt eigentlich gleiten, machen wir mal f1. Und double - die doppelte Präzision d1. Da habe ich eine höhere Genauigkeit. Jetzt kann ich diesen Gleitkommazahlen natürlich auch etwas zuweisen, diesen Variablen, einen Zahlenwert und es geht, wie man es gewohnt ist: Mit Punkt, ganz wichtig jetzt, weil im Deutschen schreibt man ja gerne mit Komma. Das versteht der Compiler aber nicht und da muss ich hier hinten noch ein kleines f dazusetzen, dann weiß er auch genau, ich meine einen Floatwert. Der hat eine eingeschränkte Genauigkeit, nämlich mit 32 Bit und die Mantisse sind 24 Bit Genauigkeit. Das ist wichtig für die Nachkommastellen zum Beispiel, oder wenn die Zahlen zu lang werden spielt es nachher auch eine Rolle. Und d1 machen wir hier mal auch einen Wert, es ist ja jetzt erstmal nur so zum Beispiel, naja 34.34 sieht nicht so schön aus. Machen wir das so, damit wir ein bisschen was sehen. Gebe ich Ihnen jetzt die Werte auch einfach mal auf der Konsole aus. Das geschieht hier ganz normal mit dem cout und ein kleines Trennzeichen dazwischen, d1 und hier noch ein Endline. Und kompilieren das Ganze mal und starten ohne Debug. So und da sehen Sie schon, da unterscheidet sich das Ganze aber nicht. Interessant wird es jetzt, wenn ich jetzt hier einfach mal mehr Stellen dranhänge. Das können wir ja mal so machen. So können wir das ganz gut austesten. Das machen wir hier noch etwas hübscher und ich nehme jetzt genau den gleichen Wert hier nochmal als double. So und jetzt geben wir das Ganze nochmal aus und schauen, was da passiert. Da sehen sie noch gar keinen Unterschied. Aber hier hinten sehen Sie: es wird schon abgeschnitten. Intern wird es nämlich mit einer höheren Genauigkeit gespeichert. Das Problem bei der Geschichte ist, werde ich mal zeigen, was man jetzt hier machen könnte, was ganz Gemeines, dass sich das zwar von der Darstellung her nicht unterscheidet, da kommen wir noch dazu, wie man das hier ändern kann, dass es unterschiedlich ausschaut, aber Intern schon. Ich subtrahiere hier einfach mal die beiden Zahlen voneinander und Sie sehen schon, was kommt da raus? Nicht 0, sondern einfach eine Differenz. Das entspricht genau der Genauigkeit von den beiden Werten. Ich hätte jetzt hier auch die gleiche Zahl nochmal subtrahieren können, statt f1 machen wir das mal so, da kommt natürlich erwartungsgemäß 0 raus. Das ist ganz klar. Also hier muss man ein bisschen aufpassen, lasse das hier mal so stehen. So können Sie sie auch mal einfach ausprobieren und damit ein bisschen experimentieren. Wichtig bei diesen Gleitkommazahlen ist auch noch was Anderes, nämlich der Überlauf. Die Zahlen haben natürlich auch eine Grenze. Jetzt mache ich mal hier einen Wert e 27 als double mal einfach. E ist die Exponentialdarstellung. d1=d1*d1 und wir schauen mal einfach, was passiert. Starte das mal so direkt. Gucken wir, ob da schon was passiert. Da passiert gar nichts. Das ist auch in Ordnung, wir geben auch nichts weiter aus. Das könnten wir aber hier noch machen, Wenn es nicht ganz so langweilig ist, das Ganze. Ich werde es aber eh gleich ändern, nämlich damit Sie hier auch den Unterschied sehen können. So, ist hier alles noch in Ordnung, Dabei bekommt man jetzt auch eine ziemlich große Zahl raus. Hier oben 10^57, Sie sehen schon, da gibt es noch eine Stelle, da kann man noch ein bisschen mehr machen, aber wenn ich das Gleiche jetzt mal, das kopiere ich mir mal runter, Ctrl+C nochmal, und hier möchte ich jetzt gerne ein f haben. Unseren float, also die Integer, nicht die float-Variable. Ich gebe das hier nochmal aus und mache genau das Gleiche, aber jetzt mit der float-Variablen statt mit der double-Variablen und starten das Ganze ohne Debug und jetzt hier unten sehen Sie 1#INF. "Infinity", unendlich. Es kommt keine Fehlermeldung, wenn man das möchte, kann man das später auch mal machen. Aber es wird die Zahl hier als unendlich gekennzeichnet. Das ist eine besondere Form, die in der Zahl gespeichert wird, ganz hilfreich, damit man bei einer Fehlerbehandlung das Ganze auch leicht abfangen kann. Man kann damit auch noch weiterrechnen, das Ergebnis ist zumindest erkennbar, dass da irgendwas übergelaufen ist. Ja, das ist jetzt hier mal vorab das Einfache bei double und float. Es gibt noch den long double, der ist aber identisch im Moment mit double Hier im Visual C++, bei anderen Compilern kann das natürlich unter Umständen unterschiedlich sein.

C++

Machen Sie sich mit den einfachen Grundlagen zu C++ vertraut und lernen Sie anhand zahlreicher Übungs- und Codebeispiele die Klassenkonzepte, Prozeduren und Funktionen kennen.

9 Std. 3 min (143 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Video-Training auf DVD mit Bonusmagazin

+ Tutorial to go: Mit Videos für iPod, iPhone & Co.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!