我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