当前位置: 首页 > 知识库问答 >
问题:

如何修复此错误:不兼容类型:从int到byte的转换可能有损

麹承
2023-03-14
public static void main(String[] args) 
{
    byte a = 20 , b = 10, c = 20 ;

    if(a<=b && a<=c)
    {
        a = c+b;

        System.out.println(a);
    }
    else if(b>=c)
    {
        a +=b;

        System.out.println(a);
    }

    else 
    {
        a+=c;

        System.out.println(a);
    }



    float t = (a/40.0f)*10;

    System.out.println("internal mark is : "+ t);
}

internal.java:21:错误:不兼容类型:从int到byte a=(byte)c+b的转换可能有损;^1错误

共有1个答案

李辉
2023-03-14

java中的byte是8位大小,限制为-128到127。所以假设这样一个场景:如果a=127和b=127。因此,如果将a和b相加,则值为254,而byte数据类型不能容纳该值。

因此,当添加两个byte类型变量时,输出将自动转换为int。因此它应该由int分配。

因此,通过隐式强制转换将a+b的输出赋给一个字节,将会溢出,结果将不正确。

 类似资料: