C - round

guiller

Grünschnabel
Hallo, ein Freund hat mir für ein Programm gesagt, dass ich diesen Ausdruck hier benutzten soll, um zu runden,und jetzt wollte ich aber gern wissen was genau macht der Ausdruck:

round( Irgendeinezahl*1000000 ) /1000000

Danke,Guillemro
 
round nimmt einen wert den er aufrundet, aber bei deinem bespiel kommt die eingegebene zahl wieder raus :D mehr nicht^^

Aber wobei ich sagen muss, dass die Funktion round in C/C++ nicht existiert.
 
Zuletzt bearbeitet:
Gaanz einfach! 1000000 ^= 10^6
Du rundest in dem Fall auf die 6. Stelle ;)
* 10^6 scheibst du das Komma nach hinten. / 10^6 holst du das nach dem Runden wieder nach vorne
=>
C++:
#include <cmath>

const double round(const double value, const std::size_t precision)
{
    const double multiplier(std::pow(10.0, precision));
    return std:floor(value * multiplier  + 0.5) / multiplier;
}
Dann kannst du das aufrufen mit:
C++:
double i = round(10.23123, 5);
nur gibt es eigtl. keinen Grund, wofür man das brauchst.

Sag mal wofür du es verwenden willst!

Okay hab gerade gesehen, das du C nutzt, da ist seid C99 round und roundf im Standard. Okay. Trotzdem bleibt die Erklärung die gleiche ;)
 
Zuletzt bearbeitet:
Ah ok alles klar :)
Ich verwende den Ausdruck für einen Algorithmus der Nullstellen einer Funktion berechnet, da mein bei manchen Funktionen es aber keinen exakten Wert gibt, brauche ich dass irgendwann wenn z.b. der funktionswert schon 0.00000004764 ist der das mal auf 0 rundet , sodass das Programm erkennt hier ist eine Nullstelle

Danke für eure / deine Hilfe :)
 

Neue Beiträge

Zurück