Gleitkommanumerale in C++
Das folgende Beispielprogramm zeigt, wie Werte von Literalen in C++ ausgegeben werden. Von dem folgenden Beispielprogramm wird eine Darstellung des Wertes des Gleitkommanumerals »1.« ausgegeben.
Numeral.cpp#include <iostream>
#include <ostream> int main()
{ ::std::cout << 1. << '\n'; }::std::cout1
Gleitkomma-Numerale
Viele formale Sprachen kommen aus englischsprachigen Ländern, in denen man meist einen Dezimalpunkt anstelle des in Deutschland üblichen Dezimalkommas verwendet. Diese Schreibweise wird in vielen formalen Sprachen übernommen. Die Zahl 12,2 wird also in vielen formalen Sprachen durch das Numeral »12.2« geschrieben.
Eine einzelne »0« vor oder nach dem Dezimalpunkt kann oft auch weggelassen werden, so daß die Zahl 0,1 als das Numeral ».1« und die Zahl 1,0 als das Numeral »1.« geschrieben werden kann. Das Numeral »1« benennt eine Ganzzahl, während das Numeral »1.« der Name einer Gleitkommazahl ist.
Für die Darstellung von Gleitkommazahlen wird auch gelegentlich eine sogenannte „wissenschaftliche“ Darstellungsart verwendet, in der nach dem Buchstaben »E« ein Exponent angegeben wird. Die vor dem Buchstaben »E« stehende Zahl ist dann mit der durch den Exponenten angegebenen Zehnerpotenz zu vervielfachen. Das Numeral »4E3« steht also beispielsweise für 4·10³.
Ein Numeral in dieser „E-Schreibweise“ gilt in vielen formalen Sprachen als Gleitkommanumeral.
Beispiele fuer Gleitkommanumerale0.
17.
0.1
12.0001
3.434E-14
3.234983443E5
Übungsfrage Welche Zahlen werden durch die obigen Numerale benannt?
Ein häufiger Flüchtigkeitsfehler deutschsprachiger Autoren ist es, bei Gleitkommazahlen in formalen Sprachen statt des Dezimalpunktes ein Dezimalkomma zu schreiben.
Texte in einer formalen Sprache können aber durchaus die Verarbeitung von Eingaben oder Herstellung von Ausgaben beschreiben, so daß in den Ein- oder Ausgaben Dezimalkommas verwendet werden können. Das ist also unabhängig davon, daß Gleitkommaliterale in der formalen Sprache selber meist einen Dezimalpunkt verwenden.
Übungsaufgaben
Die folgenden Übungsaufgaben können bearbeitet werden, indem das obige Beispielprogramm »Numeral.cpp« als Muster verwendet wird. Das Numeral »1.« des Beispielprogramms ist dabei jeweils durch ein Literal zu ersetzen.
- Eine große Zahl
- Wie stellt C++ den Wert des Numerals »22E22« (ohne die Anführungszeichen) dar?
- Noch eine große Zahl
- Wie wird der Wert des Numerals »1234567890123456789012345678901234567890.« (40 Ziffern gefolgt von einem Punkt) dargestellt? Was passiert, wenn man den Punkt am Ende wegläßt? Wie kann man das verstehen?