float verwenden



  • Hallo,
    Wenn eine Variable mit float deklariert wird, steht hinter dem Wert ein f.
    z.B.:

    float wert = 25.56f
    

    Dieser Quellcode ist jedoch auch richtig:

    #include <iostream>
    using namespace std;
    
    void main ()
    {
    	float wert = 25;
    	cout << wert;
    	system("PAUSE");
    }
    

    Wann ist das f hinter dem Wert erforderlich?



  • Wenn Du bei der Auswertung von Ausdrücken möchtest, dass der Compiler mit einem bestimmten Datentyp rechnet. Beispiel:

    float d = 15 / 2; // das Ergebnis von 15 (int) / 2 (int) ist 7 (int). d == 7.0
    float d = 15.f / 2.f; // das Ergebnis von 15.f / 2.f ist 7.5f (float). d ~= 7.5
    


  • der untere Code geht daher, da implizite casts zwischen den numerischen Typen moeglich sind... dein int wird also zum float gecastet.

    Das f ist dann wichtig, wenn du explizit einen float willst, da ohne diesem ein double angelegt und zum float gecastet wird



  • Als kleine Ergänzung:

    Auch der umgekehrte Weg funktioniert:

    int i=25.f;
    //oder
    int i=25.5f;
    

    Dann sollte der Compiler jedoch eine Warnung 'raushauen, dass ein potenzieller Datenverlust vorliegt. Im zweiten Fall geschieht dies auch, 25.5f wird implizit nach int gecastet und letztlich wird 25 zugewiesen.



  • wenn du zum beispiel folgendes hast:

    void foo(float a);         // -> foo(2.0f);
    void foo(double a);        // -> foo(2.0);
    void foo(int a);           // -> foo(2);
    

    da brauhcst ud das utner umständen



  • Skym0sh0 schrieb:

    wenn du zum beispiel folgendes hast...

    ...da brauhcst ud das utner umständen

    Und wozu?
    Lass eine Funktion weg. Ich denke, dass ist es, was Du meinst.

    void foo(float a);         // -> foo(2.0f);
    void foo(double a);        // -> foo(2.0);
                               // -> foo(2); in die float, oder in die double?
    


  • Skym0sh0 schrieb:

    da brauhcst ud das utner umständen

    Hui! Hast du so wenig Zeit? 😃


Log in to reply