|
本帖最后由 szy 于 2021-7-29 16:58 编辑
两种转换之间的区别请看下面代码:
public class convert {
public static void main(String[] args)
{
int a = 50;
int b = 9;
float c,d,e,f;
System.out.println("a="+a+",b="+b);
c = a/b; //a/b是整数除,本来结果应该是5,但因为c是float,所以结果就是5.0
System.out.println("a/b="+c);
System.out.println("a="+a+",b="+b);
d=(float)a/b; //可能写代码的人的原本的想法是a/b,然后再强转为float,可实际上是先将int a强转为float(因为运算符“(float)”的优先级是最高的),所以就变成了5.0 float,然后再/ int b,但java会将int b转换为float,然后再两个float相除,所以结果 d=5.5555553
System.out.println("d="+d);
e=(float)(a/b);//先整数除,只是人为再强转为float,这与前面的c自动转为float无区别
System.out.println("e="+e);
f=(float)a / (float)b;//已经人为先将a和b强转为float了,然后再两个float相除,结果当然和d一样
System.out.println("f="+f);
}
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|