Nachkommawert von float
-
Wie kann ich feststellen ob eine float-Variable einen Nachkommawert hat oder ob alle Stellen nach dem Komma 0 sind?
-
Ganzzahlige Werte bei Float sind (denke ich, außer sie entstehen durch eine Int Division bzw. lassen sich durch eine solche darstellen) unwahrscheinlich aber nicht unmöglich. Da Float eine Genauigkeit von 6 Stellen hinterm Komma hat, würde ich wahrscheinlich mit den "ceil" und "floor" Funktionen aus der <math.h> mit 10 hoch 6 multiplizieren, abschneiden und anschließend vergleichen, ob der Rest 0 ergeben hat...
Winn
P.S.: Entsprechend der Genauigkeit des Variablentyps würd ich die Operatorgröße wählen, float 10 hoch 6, double 10 hoch 9, long double etc.
-
zu komplex, wieso sagst du bei der Ausgabe nicht einfach (int) davor? Also:
float Floatwert=0; int z1=15, z2=10; Floatwert=z1/z2; cout<<(int)Floatwert;
Das klappt allemal, denn hier rundet er die Zahl.
-
Hi!
Ich glaube das ist nicht die Antwort auf seine Frage gewesen @Spieleprogrammierer
und davon mal abgesehn, da wird nicht gerundet, sondern einfach abgschnitten, weil du einen cast von float nach int vollziehst, oder irre ich mich?
-
Man kann auch mit modf den Wert in Vor- und Nachkomma aufteilen und dann nur den Nachkommateil mit 0 vergleichen.
-
und davon mal abgesehn, da wird nicht gerundet, sondern einfach abgschnitten, weil
du einen cast von float nach int vollziehst, oder irre ich mich?Nein du irrst dich nicht. Gerundet wird in vb
mfg
v R
-
if((int)f == f)
^so kannst du es überprüfen.
Devil
-
Original erstellt von Spieleprogrammierer:
**Das klappt allemal, denn hier rundet er die Zahl.**
Er möchte nicht runden, sondern prüfen