Does this make x into a float?

Code:
double x;
float y;

y = (float)(x);
Does this produce any kind of truncation error? This seems so trivial that it should not work. If it is this simple to convert data types, why do we even have to bother with the (float)(x) statement?