2014-10-29 54 views
0

我99%完成了我的程序,但是對於其中一部分,我需要將某個值(一個int)減少90%。起初,我認爲我可以將它乘以0.1,那樣做。但我不能這樣做,因爲減少90%的價值仍然需要一個整數。以一個百分比減少一個int?

這就是我所擁有的,但是由於上述原因,它不起作用。

s2.increaseAltitude(0.1*(s2.getAltitude())); 

所以我的問題是我不知道如何去減少90%的值,但它仍然是一個整數。

+0

它轉換成int? – Tetramputechture 2014-10-29 22:54:02

+1

不管你怎麼做,你都會有一個舍入問題。你需要建立「規則」,以確定你是否四捨五入到最近。 – 2014-10-29 22:54:20

+0

10是一個int。爲什麼不寫這個:'s2.increaseAltitude(s2.getAltitute()/ 10);' – 2014-10-29 23:58:06

回答

1

最簡單的方法是投操作的結果爲int

s2.increaseAltitude((int)(0.1*(s2.getAltitude()))); 

但是,這將向下舍的結果,因爲鑄造doubleint將截斷小數部分。

如果你想/需要或圍捕下來,那麼你可以使用Math.round()

s2.increaseAltitude((int)(Math.round(0.1*(s2.getAltitude())))); 
+1

除了這可能會導致一些令人驚訝的結果。 – 2014-10-29 22:54:53

0

怎麼樣計算後舍入:

s2.increaseAltitude((int) (0.1*(s2.getAltitude()) + .5));