2014-10-29 33 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));