überprüfen ob float grade ist

Rodney

Mitglied
Hallo Leute,
wie kann ich in C++ überprüfen ob ein bestimmte Float-Variable einen graden Wert hat?

by the way: wie kann man in c++ for schleifen frühzeitig beenden

Danke im Vorraus, Rodney
 
Ganz einfach, indem du jede Stelle überprüfst. Überprüfung braucht ja nur von 0-9 sein. Und sobald 1,3,5,7,9 vorkommt weißt du, dass die ganze Zahl niemals gerade sein kann ;)
 
Nun gut des wäre mir zuviel schreibarbeit

Gerade Zahlen können immer durch 2 divitiert werden

-> somit musst du dich nur auf den Rest konzentrieren
-> kein Rest: gerade
-> Rest: ungerade

mfg
 
hmm,

du kannst via des Modularbefehls gucken ob die division durch 2 einen rest ergibt. also
Code:
if (var%2 <> 0) cout << "ungerade";
nagel mich nicht auf der Syntax fest , ich bin Delphiianer, c liegt einige Zeit zurück
 
Der syntax stimmt nicht ganz, aber sonst ists OK
PHP:
if ((var % 2) != 0) cout << "ungerade";


eine schreife vorzeitig abbrechen tut man indem man
PHP:
break;
sagt
willst du nur den aktuellen schleifendurchgang abbrechen, und mit der nächsten runde weiter machen, so heißt das komando dafür
PHP:
continue;
 
sorry ich hatte mich falsch ausgedrückt , danke erstmal für die HILFE
Ich wollte wissen wie ich rauskriege ob eine Floatvariable Nachkommastellen hat...
also z.B. 1,5 -> Nackkommastellen
4 -> keine Nachkommastellen

wie bringe ich das in eine If-Anweisung

achja und warum bekomme ich bei so einer diivision:

int Zahl = 0;
int i = 0;
float Ergebnis = 0;
Ergebnis = Zahl / i;

warning C4244: '=' : Konvertierung von 'int' in 'float', moeglicher Datenverlust

wo ist da bitte ein datenverlust? die endvariable ist doch float...
 
hmm,

die genauigkeit geth flöten ;) Mach mal mit eienr Realzahl eine Schleife und versuch die mit eienr bestimtmen Endbedingung zu beenden :D

ansonsten, mach einfach einen FloattoInt Cast udn guck ob die Zahlen gleich sind, ist dies der Fall hatte die Zahl keine Nachkommastellen. Aber immer beachten das Flaotrechnungen sehr ungenau sind und durchaus mal eine 0 ausgegeben wird wo der Kompiler aber ein 0,0000000000000000124 sieht und deshalb sagt dass Floatvariable ungleich der Intvariable ist obwohl das gar nicht stimmt. Da musste aufpassen bei Floats.
 
wie wärs mit

float fVar;
float fKomma;
.
.
.

fKomma = fVar - (float)floor(fVar); // Zahl - größte ganze Zahl die kleiner als fVar

if(fKomma > 0.0)
{
/* tu was du willst */
}


beachte dabei auch den Kommentar des vorredners
 

Neue Beiträge

Zurück