mit float rechnen
-
hi Leute, ich verstehe da etwas nicht.
Folgendes Programm :
#include <iostream> using namespace std; int main() { float Berechnung; for(int i=1;i<11;i++) { Berechnung = i/(i+1); cout << Berechnung << endl; } }1.Ich bekomme hier als Werte immer "0", erst wenn ich aus dem "int i", ein "float i" mache, werden die Werte richtig angezeigt. Warum ist das so ?
2.Wenn ich eben statt "int i" "float i" nehme, haben manche Zahlen 4 oder 5 Stellen nach dem Punkt, andere nur eine. Wie geb ich den float so an, das alle Zahlen zb zwei Stellen nach dem Punkt haben ?
3.Bei C ging das doch ganz einfach oder ? Also einfach printf("%2.f"); um 2 Stellen nach dem Punkt zu haben, geht das nicht ähnlich bei C++ ?
Danke schonmal, mfg toxor
-
i+1.0, dann wird alles automatisch in float verwandelt.
-
1. Weil Ganzzahl geteilt durch eine Ganzzahl ergibt wieder eine Ganzzahl, die Nachkommastellen entfallen -> 5/2 = 2

2. + 3.:#include <iostream> #include <iomanip> using namespace std; int main() { // gibt 1.23 aus cout << fixed << setprecision(2) << 1.2345f << endl; }
-
D schrieb:
i+1.0, dann wird alles automatisch in float verwandelt.
BTW:
i+1.0f <- float
i+1.0 <- double
-
Super thx für die Antworten
-
float Berechnung = 1.0;Wird eh in float verwandlet!
-
oder casten
Berechnung = (int)(i)/((int)(i)+1);
-
Skym0sh0 schrieb:
oder casten
Berechnung = (int)(i)/((int)(i)+1);1. Wollte er float verwenden
und 2. sollte man keine C-casts verwenden