Прежде всего, когда вы манипулируете цена в розничной торговле (например, торговые центры), вы должны использовать целые или длинные и не плавать или двойной, потому что число всегда с 2 десятичными знаками, а лучший способ обработки всего в розничной торговле - с целыми значениями.
Так, например:
30.01f ---> 3001
30.03f ---> 3003
И так далее ... При том, что мы упростили намного способ обработки значений цен. После этого вы можете легко создать свой собственный алгоритм округления цены .
Здесь образец круглая функция цена, которая должна делать то, что вы хотите:
public static int roundPrice(int price) {
String strPrice = String.valueOf(price);
int len = strPrice.length();
int lastDigit = Integer.valueOf(strPrice.substring(len -1));
int toAdd = -lastDigit;
if(lastDigit > 7)
toAdd = 10 - lastDigit;
else if(lastDigit > 2)
toAdd = 5 - lastDigit;
return price + toAdd;
}
А вот пример того, как вы можете использовать его:
public static void main(String[] ars) {
int[] nums = { 3001, 3003, 3007, 3008 };
for(int n : nums) {
System.out.println(roundPrice(n));
}
}
Я не знаю, почему некоторые пользователи прокомментировали ваш вопрос, поскольку это тривиальный вопрос, и, как будто в этом форуме есть несколько других ответов, которые объясняют, что вы хотите ... Я даже не могу понять, почему у вас есть -5 для этого вопроса ... Тайны StackOverflow!
Это домашнее задание? Если это так, пожалуйста, отметьте так. –
И что вы нашли, когда введенный 'java float round' в это окно поиска вверху справа вверху? Пять тысяч хитов - это то, что я получил, наверняка вы могли бы найти _something_ в этом списке, чтобы удовлетворить :-) – paxdiablo
Нам действительно нужен «автор вообще не занимался исследованиями и злоупотребляет SO как свой личный google» close kind ... – Voo