All:
I'm trying to convert one integer number using a float number factor. Here is the code:
int ry = 125; double ryf;
ryf = ry/1440;
The result is 0 and should be 0.06666666667 (or even more sixes.)
BTW, if I change ry to 1440 the result is 1.00000.
What am I doing 'incorrectly'?
James McKenzie
On 10/31/10 9:23 PM, James McKenzie wrote:
All:
I'm trying to convert one integer number using a float number factor. Here is the code:
int ry = 125; double ryf;
ryf = ry/1440;
The result is 0 and should be 0.06666666667 (or even more sixes.)
And why should it be? None of the values in the expression 'ry/1440' are of type 'double'. They're both 'int's, so the compiler sees it as integer division instead of FP division. The C language spec doesn't require the compiler to infer that you wanted FP division when you assign to a variable of FP type.
What am I doing 'incorrectly'?
Now, if your assignment looked like this:
ryf = ry/1440.0;
then it would work correctly. Now the 1440 is of type 'double', so the compiler emits a floating-point division.
Chip