Next: Assignment Type Conversions, Up: Type Conversions [Contents][Index]
You can do explicit conversions using the unary cast operator,
which is written as a type designator (see Type Designators) in
parentheses. For example, (int)
is the operator to cast to
type int
. Here’s an example of using it:
{ double d = 5.5; printf ("Floating point value: %f\n", d); printf ("Rounded to integer: %d\n", (int) d); }
Using (int) d
passes an int
value as argument to
printf
, so you can print it with ‘%d’. Using just
d
without the cast would pass the value as double
.
That won’t work at all with ‘%d’; the results would be gibberish.
To divide one integer by another without rounding,
cast either of the integers to double
first:
(double) dividend / divisor dividend / (double) divisor
It is enough to cast one of them, because that forces the common type
to double
so the other will be converted automatically.
The valid cast conversions are:
void
.