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错误
java中的byte
是8位大小,限制为-128到127。所以假设这样一个场景:如果a=127和b=127。因此,如果将a和b相加,则值为254,而byte
数据类型不能容纳该值。
因此,当添加两个byte
类型变量时,输出将自动转换为int
。因此它应该由int
分配。
因此,通过隐式强制转换将a+b的输出赋给一个字节,将会溢出,结果将不正确。
我对这里的代码有疑问: 我不确定究竟是哪个部分导致了以下错误: 不兼容的类型:从整数到字节的可能有损转换 这是程序输出的错误消息:
我试图为学校编写一些东西,但我不断收到这个编译错误: 错误:不兼容的类型:从int到byte的转换可能有损失 A = (字节)C / (字节)B;
我正在修改这段代码的过程中,从一个例子从我的教科书,以兼容一个双数组。代码中有几个地方我不确定如何修复错误“不兼容类型:从double到int的转换可能有损” 我确信还有其他简单的错误我还没有找到,因为我还没有机会调试和校对代码,而且我对Java和编程也很陌生。 谢谢你的帮助!
null 谁能解释一下作为一个初学者我该如何消除这个错误。 太感谢你了!
我是Java的初学者,我已经编写了这段代码。当我尝试运行它时,它不断显示错误,例如: < li >错误:不兼容的类型:从double到int的转换可能有损耗 < li >错误:找不到符号 有人能解释一下我作为一个初学者应该如何解决这个问题吗。 太谢谢你了!