У меня есть следующий код, чтобы взять процент от «набора», и, например, если введено 60%, он содержит только 9 примеров «набора». Тем не менее, мне нужно изменить это, как если бы> 0,5 I округляли число, но если это < 0.5, я округляю его. Например, 9.6 хранит первые 10 учебных примеров, в то время как 9.4 хранит первые 9 примеров.Процент вектора округления вверх или вниз и целочисленного деления
public void proportion(int percentage)
{
int noOfEx = percentage*set.size()/100;
root.keptEx = new Vector(set.subList(0, noOfEx));
}
Я пытался сделать
public void proportion(int percentage)
{
double noOfEx = percentage*set.size()/100;
int rounded = (int)Math.round(noOfEx);
root.keptEx = new Vector(set.subList(0, rounded));
System.out.println(noOfEx);
}
но если set.size 16 я все еще получаю 9 в то время как мне нужно 10
https: // www.google.co.uk/webhp?#q=java%20round%20to%20the%20nearest%20integer – NPE
да, но мне нужно округлить вверх и вниз в то же время – user4345738
Во-первых, используйте double для noOfEx: 'double noOfEx = percent * set.size()/100.0; 'Затем используйте Math.round() для округления, которое вы ищете:' root.keptEx = new Vector (set.subList (0, Math.round (noOfEx)) ; ' –