--------------------------------------------------------------------------
unsigned int x = 100;
unsigned int y = 200;
float f;

f = (float)x-(float)y; // ok result -100.000

f = (float)(x-y); // Not ok , result 4.29497e+009
--------------------------------------------------------------------------
can anybody tell me why this behaviour by compiler