float x = 1/2 = 0 ???



  • wenn ich folgendes mach:

    float x = 1/2;

    kommt für x immer 0 rauß, nach adam riese sollten es aber natürlich 0,5 sein. mit nem float sollte das doch gehen ?!?
    sobald ein wert unter 0 rauskommen sollte, kommt 0 rauß.

    wie soll ich das denn sonst machen ???

    mfg



  • 1.0/2.0 oder float(1)/2
    aber static_cast is besser. war mir abezr zu viel zjm Tippen



  • Hi,

    probiere es mal mit:

    float x = (float) 1/2
    

    Sollte zumindestens funktionieren. Warum das andere nicht geht, kann ich Dir auch nicht genau sagen.



  • Original erstellt von WG_Spritzwasser:
    **wenn ich folgendes mach:

    float x = 1/2;

    kommt für x immer 0 rauß, nach adam riese sollten es aber natürlich 0,5 sein. mit nem float sollte das doch gehen ?!?
    sobald ein wert unter 0 rauskommen sollte, kommt 0 rauß.

    wie soll ich das denn sonst machen ???

    mfg**

    Mal kurz im C Standard nachlesen...

    Der / Operator führt eine Integer Division durch, sobald beide Operanden vom Typ Integer sind. Sobald einer (oder alle beiden) der Operanden vom Typ float floating Point sind, führt der / Operator eine floating-point Division durch.

    int i = 1, j = 2;
    float f;
    f = i / j; // integer division
    

    f = (float)i / j; // floating-point division


Anmelden zum Antworten