當應該沒有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