2015-11-20 90 views
-1

以下value1始終評估爲0,儘管player1Disks和player2Disks都高於零且不等於另一個。爲什麼這個表達式繼續評估爲0

int value1 = Math.round(100 * ((player1Disks - player2Disks)/(player1Disks + player2Disks)));` 

下面是一些示例輸入,用於分別player1Disksplayer2Disks[5,8], [6,8], [8,4], etc.

然而,所有這些都在評估爲零。我錯過了什麼嗎?

回答

0

在您呈現的三種情況下,整數除法的計算結果爲00*100仍等於0

您應該先乘以100,然後除。或者更好的是,不要使用int

第一招:-3/13 = 0

第二個:-2/14 = 0

第三個:-4/12 = 0

+0

@ PM77-1這些都不是'4/3' – jiaweizhang

+0

怎麼可能我寫這篇文章的表達得到一個整數值? – Brejuro

+1

假設你並不在乎維持高精度,只需轉換成double並執行雙重算術運算。 – jiaweizhang

相關問題