需要强制转换的结果不是整体,而是局部,如果转换整体,则会发生错误。
例如 float a;
int b = 1;
int c =3 ;
则 a = (float)(b/c);结果为a = 0.0;原因是先计算了(b/c),即(1/3) 结果为零,再强制转换之后结果为0.0;
正确的方法是,不加括号;
a = (float)b/c;执行顺序为:先将b(1)转换为float型,即1.0然后计算1.0/3 结果为0.33;
需要强制转换的结果不是整体,而是局部,如果转换整体,则会发生错误。
例如 float a;
int b = 1;
int c =3 ;
则 a = (float)(b/c);结果为a = 0.0;原因是先计算了(b/c),即(1/3) 结果为零,再强制转换之后结果为0.0;
正确的方法是,不加括号;
a = (float)b/c;执行顺序为:先将b(1)转换为float型,即1.0然后计算1.0/3 结果为0.33;