[Novize] Zahlen als Float festlegen?



  • Hallo Leute...

    Habe folgendes Problem im Verständnis bei einem Kapitel im Lehrbuch "Beginning_C-_From_Novice_to_Professional,_4th_Edition"

    /* Program 2.7 Division with float values */
    #include <stdio.h>
    int main(void)
    {
    float plank_length = 10.0f; /* In feet */
    float piece_count = 4.0f; /* Number of equal pieces */
    float piece_length = 0.0f; /* Length of a piece in feet */
    piece_length = plank_length/piece_count;
    printf("A plank %f feet long can be cut into %f pieces %f feet long.",
    plank_length, piece_count, piece_length);
    return 0;
    }
    

    Es geht um die Variablen Deklaration. Ich verstehe warum man bei Konstanten Zahlen z.b. 10.1 ein "f" dranhängt um den memory type zu definieren. Jedoch verstehe ich nicht wieso das Ganze AUCH bei einer deklaration von einer Variablen geschieht. Hier:

    float plank_length = 10.0f;
    

    float beschreibt doch schon den mem type für den Wert 10.0f - und für jeden anderen Wert welcher vielleicht in der Variablen später gespeichert wird.

    Aus welchem Grund sollte ich also ein "f" nochmals anhängen. Da Blicke ich leider nicht ganz durch 😞



  • 1. Ist das eine Definition (die beinhaltet und eine Deklaration)
    2. Must das das f nicht anhängen.

    Fließkommakonstanten sind erstmal double .
    Und du hast recht, der Compiler weiß ja dass plank_length ein float ist und wandelt das richtig um.

    Es gibt nur kaum gute Beispiele warum man das f-Postfix braucht.

    3. Ist dein Einrückungsstil grottig.

    float benutzt man eigentlich nur noch, wenn es Speicherprobleme (sehr große Felder oder µC) gibt oder man auf der GPU rechnet.
    Sonst nimmt man double, zumal der Compiler die Fließkommaberechnungen auch in double (oder besser) macht.



  • Die Frage hätte sich durch eigenes Probieren der Deklarationen hinreichend erledigt.



  • Danke für die Infos.

    PS: Das ist nicht mein Einrückstil, ich zitiere nur.

    Was würde probieren mir als Anfänger beweisen bzw. erklären.
    Ich weiss ja das es auch ohne "f" funktionieren würde aber gerade desshalb wollte ich wissen warum es so geschrieben wird im Buch.


Anmelden zum Antworten