Possible Duplicate:
C programming division
probably my question is very simple and stupid.
I would like to store the value of a division, in particular 1 / x where x is a
integer value.
int x = 17;
double result = 1/x;
I try to do it but I always get 0.000000 ... I try to enter a value fixed in x, for example 1/17 but always get the same value .. what’s Wrong?
You are doing integer division.
Try the following and it will work as expected:
The type of the
1in the expression you have above isint, and the type ofxis int. When you doint / int, you get an int back. You need at least one of the types involved to be floating point (floatordouble) in order for floating point division to occur.Unlike in Mathematics, division in C++ can either refer to truncated integer division (what you did) or floating point division (what I did in my example). Be careful of this!
In my example, explicitly what we have is
double / int -> double.