float Zahlen ergeben keine Kommazahlen?



  • int i,feld[5];
    float d=3.5;
    	d=5/3;
    printf("%.2f",d);
    

    wieso macht der mir keine Kommazahlen daraus. Das ganze soll darauf hinauslaufend as ich 5 int Variablen einlese und dadurch den Durchschnitt berechne indem ich alle 5 felder addieser und die durch 5 teile.
    Wäre nett wenn ejmand ehflen könnte...



  • 5/3 ist nunmal ne Ganzzahldivision weil da nur Integerwerte drin vorkommen.

    Bist übrigens im falschen Forum gelandet.



  • Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum ANSI C verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • XHatebreedX schrieb:

    int i,feld[5];
    float d=3.5;
    	d=5/3;
    printf("%.2f",d);
    

    wieso macht der mir keine Kommazahlen daraus. Das ganze soll darauf hinauslaufend as ich 5 int Variablen einlese und dadurch den Durchschnitt berechne indem ich alle 5 felder addieser und die durch 5 teile.
    Wäre nett wenn ejmand ehflen könnte...

    5 und 3 sind integer also 1

    wenn du nun aber

    d = (float)5/3 machst //egal ob der erste oder der 2. wert float ist
    

    bekommst du eine float zahl, weil bei einer rechnung die kleineren (hier int) zum großen datentyp "umgewandelt" (float) wird

    somit ergibt sich d = (float)5/float(3);

    mfg stelfer


Anmelden zum Antworten