Kommastelle feststellen
-
Hallo zusammen.
gibt es eine einfache möglichkeit festzustellen ob eine zahl eine kommastelle besitzt oder nicht.
also ich habe eine beliebige zahl und würd gerne rausfinden ob es eine ganzzahl oder realzahl ist.
Danke
-
In was für einem Datentypen hast du den die Zahl gespeichert?
-
so lange die zahl sich mit nem int vergleichen lässt und in einen int umwandeln lässt, dann auf jeden fall...
bsp.:
float in; std::cin >> in; int vrgl(in); if (vrgl != in) { //hat kommastellen }nat kann man auch auf vrgl verzichten - und int(in) in dem if schreiben...
bb
-
oder:
double d = 1.2; double tmp; double fractpart = modf( d , &tmp); //->fractpart =0.2, tmp=1oder die castest hin und her
-
Die Funktion
modf()befindet sich übrigens in<cmath>.Man kann es den Nachkommaanteil auch mit
static_cast<int>entfernen. Allerdings sollte man vorsichtig sein, wenn diedouble-Zahl den Wertebereich vonintüberschreitet.