一尘不染

字节精度可能损失

java

我的代码是

class Bauua {
    public static void main(String...args) {
        byte a = 10; byte b = 20;
        byte c = a+b;
        System.out.println(c);
    }
}

编译时出现以下错误

error: possible loss of precision 
byte c= a+b;
required: byte
found:    int

但是,当我使用它byte c=(byte)(a+b);代替byte c = a+b;它成功编译时,那么我的问题是,当所有3个变量(即a,b和c)都是字节数据类型时,为什么需要强制转换?


阅读 286

收藏
2020-12-03

共1个答案

一尘不染

byte c= a+b;+此处的运算符将返回int,这就是您需要使用强制转换的原因。

2020-12-03