C语言数据类型强制转换注意事项

来源:互联网 发布:淘宝客 开放接口 编辑:程序博客网 时间:2024/05/16 15:51

需要强制转换的结果不是整体,而是局部,如果转换整体,则会发生错误。

例如 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;

0 0