In fact, he uses (int)/(float)for the second example. Since Int32 is implicitly converted to Single, the compiler will not complain, and it will work fine.
However, he will complain if you do this:
float num = 1.0 / ( ( float ) Math.Sqrt ( ( double ) num2 ) );
(double)/(float), (double)/(double). , float.
EDIT: Btw - ?
, . IL. JIT - , .
, , , , :
double num2 = (this.X * this.X) + (this.Y * this.Y) + (this.Z * this.Z);
float num = (float) (1.0 / Math.Sqrt(num2));
this.X *= num;