浮点数的除法,该如何处理

浮点数的除法
float   a   =   8.5;  
float   b   =   0.00025f;  
unsigned   int   c   =   (unsigned   int)(a/b);  
unsigned   int   d   =   (unsigned   int)(8.5/0.00025);  
执行完以上代码以后(在VC6.0上运行),为什么c的值为33999,d的值为34000
为什么会出现如此不同的结果


------解决方案--------------------
unsigned int c = (unsigned int)(a/b);//因为a,b是float类型,除法也是按float(32 bits)精度运算的
unsigned int d = (unsigned int)(8.5/0.00025);//编译器按double类型处理8.5和0.00025,故精度(64 bits)提高
如果用unsigned int e = (unsigned int)(8.5f/0.00025f);则亦指定编译器按float精度处理出发了,则e与c结果等