Round aus den FAQ



  • moin

    Wohl nur ein kleiner Schönheitsfehler:

    double Round(double Zahl, unsigned int Stellen)
    {
        Zahl *= pow(10, Stellen);
        if (Zahl >= 0)
            floor(Zahl + 0.5)
        else
            ceil(Zahl - 0.5);
        Zahl /= pow(10, Stellen);
        return Zahl;
    }
    

    Eigentlich haben ceil() und floor() einen return value.
    Wenn es denn umbedingt ohne return value was werden soll, dann zB so:

    // y = 0 standard floor; y = 0.5 richtiges runden
    void wrap_floor(double *x,double y)
    {
      *x = floor(*x + y);
    }
    
    wrap_floor(&Zahl,0.5);
    

    vielleicht ein bißchen zuviel des Guten
    Zahl = floor(Zahl + 0.5) wär wohl einfacher gewesen. naja...

    Gruß stahl


Anmelden zum Antworten