我99%完成了我的程序,但是對於其中一部分,我需要將某個值(一個int)減少90%。起初,我認爲我可以將它乘以0.1,那樣做。但我不能這樣做,因爲減少90%的價值仍然需要一個整數。以一個百分比減少一個int?
這就是我所擁有的,但是由於上述原因,它不起作用。
s2.increaseAltitude(0.1*(s2.getAltitude()));
所以我的問題是我不知道如何去減少90%的值,但它仍然是一個整數。
我99%完成了我的程序,但是對於其中一部分,我需要將某個值(一個int)減少90%。起初,我認爲我可以將它乘以0.1,那樣做。但我不能這樣做,因爲減少90%的價值仍然需要一個整數。以一個百分比減少一個int?
這就是我所擁有的,但是由於上述原因,它不起作用。
s2.increaseAltitude(0.1*(s2.getAltitude()));
所以我的問題是我不知道如何去減少90%的值,但它仍然是一個整數。
最簡單的方法是投操作的結果爲int
:
s2.increaseAltitude((int)(0.1*(s2.getAltitude())));
但是,這將向下舍的結果,因爲鑄造double
到int
將截斷小數部分。
如果你想/需要或圍捕下來,那麼你可以使用Math.round()
:
s2.increaseAltitude((int)(Math.round(0.1*(s2.getAltitude()))));
除了這可能會導致一些令人驚訝的結果。 – 2014-10-29 22:54:53
怎麼樣計算後舍入:
s2.increaseAltitude((int) (0.1*(s2.getAltitude()) + .5));
它轉換成int? – Tetramputechture 2014-10-29 22:54:02
不管你怎麼做,你都會有一個舍入問題。你需要建立「規則」,以確定你是否四捨五入到最近。 – 2014-10-29 22:54:20
10是一個int。爲什麼不寫這個:'s2.increaseAltitude(s2.getAltitute()/ 10);' – 2014-10-29 23:58:06