Page excerpted from Expressions topic of a first year course in Structured Programming
Conversions
int
s and double
s are different types. Computers
can
- do
double
arithmetic - do
int
arithmetic
They can't do mixed arithmetic. Instead, they convert from one type to the other.
In the example evaluation of the term 2 * x
requires an implicit
conversion.
The 2
is automatically converted to a double
yielding 2.0
* x
and then a double
multiply is called.
Exercises
What will the following functions return (and what conversions will be carried out inside them)?
int fee() { return (11/6+11%6); }
int fi() { return (1.1 + 10.0/5); }
double fo() { return (3 * 6 – 12.0 / 5 + 4); }
No conversions—all operations are integer. 11/6 = 1
& 11%6 = 5
so 6
is returned.
5
is converted to 5.0
, 10.0/5.0 = 2.0
1.1 + 2.0 = 3.1
converted to int
for return
so 3
is returned.
5
is converted to 5.0
, 12.0/5.0 = 2.4
3 * 6 = 18
18
and 4
are converted to double
—18.0
and 4.0
—for summation with 2.4
yielding 19.6
which is the double
returned.
Examples Shown in Full