0 Daumen
1,2k Aufrufe

Frage:

Was bedeutet denn der Ausdruck "0.0f" wenn ich dies einem double in der Programmiersprache C zuweiße. Ich blicke da nicht ganz durch. Wenn ich z.b sage double x = 0.0f was bedeutet dies genau?

Avatar von

2 Antworten

+1 Daumen

0.0f ist ein Wert vom Typ float, wegen des Suffixes f.

Mit double x = 0.0f wird dieser Werte einer Variable vom Typ double zugewiesen.

Das ist problemlos möglich, weil die Menge der gültigen float-Werte eine Teilmenge der gültigen double-Werte ist.

Avatar von 5,7 k
+1 Daumen

Aloha :)

In "C" und "C++" sind Fließkomma-Konstanten grundsätzlich vom Typ "double". Daher werfen einige Compiler dir eine Warnung oder gar einen Fehler, wenn du folgenden Ausdruck hast.

float pi= 3.1415926535897932384626433;

Damit würdest du einer Variablen vom Typ "float" eine Konstante vom Typ "double" zuweisen. Da der Typ "double" mehr Nachkommastellen und einen größeren Exponentenbereich bietet als der Typ "float", kann es bei einer solchen Zuweisung zu unerwünschten Genauigkeitsverlusten kommen.

Um eine Warnung oder einen Fehler des Compilers zu vermeiden, kannst du als Programmiererin dem Compiler sagen, dass du dir dessen bewusst bist, indem du hinter die Fließkomma-Konstante (ohne Leerraum) ein "f" oder ein "F" setzt.

float pi= 3.1415926535897932384626433F;

Damit wird der Typ der Fließkomma-Konstanten zum Typ "float".

In deinem Beispiel ist das "F" überhaupt nicht nötig und sogar kontra-produktiv:

double x= 0.0F;

Der Typ der Variablen x ist vom Typ "double" ist, sodass die "double"-Konstante 0.0 wunderbar passt. Im Gegenteil kann das "F" sogar wieder zu einer Compiler-Warnung führen, weil du nun einer "double"-Variablen einen "float"-Wert zuweist, sodass der Compiler zunächst eine Typ-Konvertierung vornehmen muss.

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community