java中byte型变量为什么会报错?

来源:百度知道 编辑:UC知道 时间:2024/06/14 15:00:28
public class Bank {

public static void main(String[] args) {
byte a=1;
a=a*2;

System.out.println(a);
我这段程序老报可能损失精度,麻烦谁帮帮我啊

在java中,类型为byte,short,char类型的变量在运算的时候会自动转为int类型,在式byte a=1;中变量a为byte类型,但在式a=a*2;中a*2为int类型,而a还是byte类型,所以会报精度损失,将a=a*2;这个式子改为a=(byte)a*2;即可!楼主以后要多多注意这样的问题啊!

对于 byte 是不应该有啥子 乘法操作的 它一般用来映射某个字符

而要数字操作 用 int 或者 long