当应该没有AFAIK时,我收到“精度丢失”错误。“可能的精度损失”是Java发疯了还是我错过了什么?
这是一个实例变量:
byte move=0;
这种情况发生在这个类的一个方法:
this.move=(this.move<<4)|(byte)(Guy.moven.indexOf("left")&0xF);
举动是一个字节,移动仍是一个字节,其余的是被铸造到一个字节。
我得到这个错误:
[javac] /Users/looris/Sviluppo/dumdedum/client/src/net/looris/android/toutry/Guy.java:245: possible loss of precision
[javac] found : int
[javac] required: byte
[javac] this.move=(this.move<<4)|(byte)(Guy.moven.indexOf("left")&0xF);
[javac] ^
我已经尝试了许多变化,但我仍然得到同样的错误。
我现在无能为力。
如果移动是128,该怎么办?当您将它移位4位时,会导致精度损失。 “byte << N”定义为返回另一个字节,还是一个int? – 2010-05-09 20:50:17