Mögliches Duplikat:
Warum kann ich kein Double zurückgeben, wenn zwei Ints geteilt werden
Mein C++-Programm schneidet die Ausgabe meiner Integer-Division ab, selbst wenn ich versuche, die Ausgabe in einen Float zu platzieren. Wie kann ich dies verhindern, während ich die Variablen (a & b) als ganze Zahlen behalte?
user@box:~/c/precision$ cat precision.cpp
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a = 10, b = 3;
float ans = (a/b);
cout<<fixed<<setprecision(3);
cout << (a/b) << endl;
cout << ans << endl;
return 0;
}
user@box:~/c/precision$ g++ -o precision precision.cpp
user@box:~/c/precision$ ./precision
3
3.000
float ans = ((float)a/b); (oder static_cast, um die Puristen zu erfreuen)
– Vlad
16. September 2012 um 13:40 Uhr
Ja, mein Fehler, ich habe schon rumgesucht, aber diesen Beitrag nicht gefunden. Es ist ein Dup, mein Böser!
– jwbensley
16. September 2012 um 13:42 Uhr