PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : double = (int/int);... und es gibt doch kein double



24dan
17-05-2006, 10:19
Hallo ich wollte gerne folgende Rechnung in meine c++ programm laufen lassen:


int position = 758400;
double distance;

double = position/32000;
cout<<" position "<<position<<" distance "<<distance<<endl;
printf( " %f \n",position);

Ausgabe:
position 758400 distance 23
23.00000


(23 statt 23,7 ??? )
:confused: :confused:

Caveman
17-05-2006, 10:39
int geteilt durch int ergibt int !!!
Schreibe statt 32000 einfach 32000.0
Dann klappt's.

Joghurt
17-05-2006, 13:53
ganz faule können die 0 auch weglassen:
double x = i / 32000.;

panzi
20-05-2006, 21:23
ganz faule können die 0 auch weglassen:
double x = i / 32000.;
Noch ne Möglichkeit wäre:

double x = i / 32000f;
oder falls man 2 variablen hat:

double x = (double)i / j;
bzw:

double x = i / (double)j;

RapidMax
21-05-2006, 00:58
Noch ne Möglichkeit wäre:

double x = i / 32000f;
oder falls man 2 variablen hat:

double x = (double)i / j;
bzw:

double x = i / (double)j;

Diese Varianten sind IMHO vorzuziehen, da der Code dadurch klarer wird. Der "faule" Punkt wird schnell übersehen, während ein Cast oder ein "f" die Situation klar zeigt.

Gruss, Andy