Variabeln speziell Float Problem
-
Hallo Zusammen auch wenn dies wahrscheinlich die ultimative Noob Frage ist,habe ich ein Problem mit den Fließkommavariablen.
Ist es richtig das ich wenn ich einer Fließkommavariablen eine Fließkommazahl zuweisen möchte ich immer ein "f" anhängen muß??
Sprichfloat zahl=4.656f
wenn ich das "f" weglasse bekomme ich von meinem Compiler immer eine Warnung
"Verkürzung von const double in Float"
Wieso schreibt er etwas von const double mit dem Wort const werden doch Konstanten deklariert,oder?
Oder ist meine Compiler ein bisschen zickig?
Ich benutze Visual c++6.0
Vielen Dank fürs lesen
Pta
-
Pta schrieb:
...
Ich benutze Visual c++6.0
Oder ist meine Compiler ein bisschen zickig?
...DAS auf jeden Fall auch.

Aber eigentlich ist er hier recht vernünftig und auch klar.Du musst Dir vor Augen führen, was Du mit dem Statement eigentlich tust:
- 1. Du reservierst Platz für Daten mit "Fließkomma-Charakter" ("float ....")
- 2. Diesen Platz möchtest Du zukünftig mit dem Namen "zahl" ansprechen ("... zahl ...")
- 3. statt des Standardwertes (0.0) soll diesem Platz gleich ein anderer Wert zugewiesen werden .... (" ... = ...")
- 4. ... und zwar den Wert der Variable, die hinter dem "=" steht (" ... 4.656f") ...
... du tippst bei 4. zwar Ziffern ein, aber für den Compiler ist das erstmal eine Varible, die er interpretieren muß. Wenn Du ihm einen Hinweis auf den Typ gibst ("....f"), dann nimmt er den passenden Typ "const float" ("const" weil Du den Wert dieser Variable nicht verändern kannst).
Mit der Zuweisung "const float -> float" hat der Compiler kein Problem (Wertebereich ist gleich groß & mit der Variable "zahl" kannst Du den Wert am Platz der Variable "4.656f" nicht verändern, weil der Wert in "zahl" kopiert wird).Gibst Du ihm KEINEN Hinweis auf den Typ, muß er sich den selbst erschließen ... und da kommt er eben nicht auf float, sondern auf double (trotzdem natürlich "const").
ABER: Da double einen größeren Wertebereich abdeckt, warnt Dich der Compiler, dass bei der Zuweisung "double -> float" etwas abgeschnitten werden könnte ...
Oder kurz gesagt: "Verkürzung von const double in Float"
Gruß,
Simon2.