Wie Runde ich mit C++?
sergej
- programmiertechnik
hi !!!
Ich kann in meiner Docu leider keine Befehle für Runden von Zahlen finden.
gibt es sowas wie "round (a)" oder so?
Hilfe
S.K.
Hallo sergej,
gibt es sowas wie "round (a)" oder so?
ja (aber nur als selfc++ Funktion :-) unter Verwendung von math.h)
int round(float x)
{
return (fmod(x,1.0) >= 0.5) ? ceil(x) : floor(x);
}
Gruß
Hans-Peter
Hallo sergej,
Hallo Hans-Peter :)
gibt es sowas wie "round (a)" oder so?
ja (aber nur als selfc++ Funktion :-) unter Verwendung von math.h)
int round(float x)
{
return (fmod(x,1.0) >= 0.5) ? ceil(x) : floor(x);
}
Gruß
Hans-Peter
ok , thnx
S.K.
Hoi,
int round(float x)
{
return (fmod(x,1.0) >= 0.5) ? ceil(x) : floor(x);
}
das ist doch mal ein tolles Beispiel fuer 'inline' ;-)
inline int round(float x) {
return (fmod(x,1.0) >= 0.5) ? ceil(x) : floor(x);
}
Gruesse,
c.j.k
Hallo,
return (fmod(x,1.0) >= 0.5) ? ceil(x) : floor(x);
Na, da denke ich doch, daß das gute alte
return(floor(x+0.5));
doch noch effizienter ist;-)
Grüße
Klaus
Hi,
return (fmod(x,1.0) >= 0.5) ? ceil(x) : floor(x);
Na, da denke ich doch, daß das gute alte
return(floor(x+0.5));
doch noch effizienter ist;-)
ja klar. Das war auch alles nur Quick-and-Dirty. Was aber wirklich effizienter ist in C/C++, wage ich mal nicht zu sagen. Am Source-Code kann man es jedenfalls nicht immer erkennen. Es kommt auch auf den Definitions- und Wertebereich an, auf den Typ des Rückgabewertes (floor() etc. liefert - soweit ich weiß - double und nicht int) und so weiter. Aber das krigt der der sergej schon alles selber geregelt.
Ciao
Hans-Peter
Moin moin!
return (fmod(x,1.0) >= 0.5) ? ceil(x) : floor(x);
Na, da denke ich doch, daß das gute alte
return(floor(x+0.5));
doch noch effizienter ist;-)
Vor allem funktioniert es auch mit negativen Zahlen, im Gegensatz zur oberen Variante. ;-)
So long
--
There are two major products that come out of Berkeley: LSD and UNIX. We don't believe this to be a coincidence.
-- Jeremy S. Anderson