-2
我正在試圖定位一個10像素的形狀相對於寬度爲72像素的方形位圖。在Android/Java中的算術運算中強制優先
在以下代碼:
fShapeLocation指形狀
fBitmapWidth的最終位置是指該位圖
cTopLeft.getX(的X寬度)的左上角位圖
我添加的對象應該在位圖的頂部X(恰好在形狀的最後三分之一的正中間)上正好顯示2/3 + 1/6。
像這樣的東西(^^^是我想要的,和[]涉及位正方形的四個角):
^^^
[ ]
[ ]
fShapeLocation=this.cTopLeft.getX()+((this.fBitmapWidth/3)*2);
fShapeLocation+=(fBitmapWidth/6)-5;
注意很多括號我如何試圖把以強制算術優先。
實際上,形狀出現在位圖的中間。我懷疑這是由java評估算術表達式的順序造成的。我寧願將我的代碼縮短到只有一行,並將其放在正確的位置 - 任何人都可以幫我解決問題嗎? (我很抱歉,我從未很擅長數學)
Err,2/3加1/6是5/6。這些括號不會改變評估順序。你的實際問題仍不清楚。 – EJP
感謝您的回覆。我會嘗試澄清 - 我的問題是使用括號是否會「強制」java按照我想要的順序評估表達式。例如:3 + 4-2 - >(3 + 4)-2 vs 3+(4-2) - 圓括號是否強制編譯器的評估順序? – user3149327
當然他們會這樣做:這就是他們的目的;但是您在發佈的代碼中添加的內容不會更改您發佈的代碼中的訂單。你的問題在別處。 – EJP