为什么Java中float变量与int型变量相乘报错

img


刚开始学习Java,有可以帮忙讲一下吗,为什么定义一个int型变量与float变量相乘报错,感谢!

int < float < double
a 是int,0.5 是double ,这两乘起来的 double,比float大,得用double接;
要么改成 double b = a * 0.5;
要么改成 float b = a * 0.5f;

a*0.5结果是double类型
解决方式:
1、强转为float类型

float b=(float)(a*0.5);

2、修改b类型为double类型。

double b=a*0.5;

内存空间大小不一样,装箱不能将大盒子装入小盒子中。