需要强制转换的结果不是整体,而是局部,如果转换整体,则会发生错误。
例如 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;
5054
764
8426

被折叠的 条评论
为什么被折叠?