Vor allem, wenn Sie Preis im Einzelhandel (wie Einkaufszentren) manipulieren sollten Sie integer oder lang verwenden und nicht oder doppelt schweben, weil die Zahl ist immer mit 2 Dezimalstellen und der beste Weg, um im Einzelhandel zu handeln, ist mit ganzzahligen Werten.
So zum Beispiel:
30.01f ---> 3001
30.03f ---> 3003
Und so weiter ... zu tun, dass wir eine Menge, die Art und Weise des Umgangs Preiswerte vereinfacht. Danach können Sie einfach Ihren eigenen Preisrundungsalgorithmus erstellen.
Hier ist ein Beispiel jähriger Preis Funktion, die genau das tun sollten, was Sie wollen:
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;
}
Und hier ist ein Beispiel dafür, wie Sie es verwenden können:
public static void main(String[] ars) {
int[] nums = { 3001, 3003, 3007, 3008 };
for(int n : nums) {
System.out.println(roundPrice(n));
}
}
Ich weiß nicht, warum einige Benutzer haben Ihre Frage kommentiert, da es eine triviale Frage ist, und als ob in diesem Forum einige andere Antworten sind, die erklären, was Sie wollen ... Ich kann nicht einmal herausfinden, warum Sie -5 für diese Frage bekommen haben ... Mysterien von StackOverflow!
Sind das Hausaufgaben? Wenn ja, bitte so markieren. –
Und was hast du gefunden, als du 'Java float round' in dieses Suchfeld oben rechts eingelassen hast? Fünftausend Treffer ist, was ich bekam, sicherlich könnte man _something_ in dieser Liste finden, um zu passen :-) – paxdiablo
Wir brauchen wirklich einen "Autor hat überhaupt keine Forschung und missbraucht SO als ihre persönliche Google" schließen Art ... – Voo