Überprüfen Sie, ob BigDecimal-Wert im Bereich
Habe ich BiGDecimal price
und ich brauche, um zu überprüfen, ob es in einem bestimmten Bereich.
Zum Beispiel sollte 3 Bedingungen:
if (price >= 0 and price <=500) {
....
} else if (price >=500 && price <=1000) {
....
} else if (price > 1000) {
....
}
Wie man es richtig mit BigDecimal geben.
- Hinweis: verwenden Sie
BigDecimal.compareTo
z.B.lowerBound.compareTo(value)
undupperBound.compareTo(value)
- Scheint, wie
BigInteger
zu mir...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist erreichbar mit der .compareTo() Methode. Zum Beispiel:
Zitieren (und Umschreibung) aus der JavaDoc:
Cheers,
Lets make it generic:
Es ist keine Problemumgehung für dieses, denke ich. Schließlich könnten Sie wickeln Sie es in ein nettes design-Muster, aber BigDecimal hat nur eine Methode für den Vergleich.
Meine Idee ist, extrahieren Sie eine Methode für die Reihe:
start
,end
...Wenn Sie bereits Apache commons lang, eine Möglichkeit ist die Verwendung der Angebot Klasse statt zu schreiben Ihre eigenen utility-Methode:
verwenden compareTo-Methode
Diese Methode gibt -1 zurück, wenn die BigDecimal ist weniger als val, 1, wenn die BigDecimal ist größer als val ist, und 0, wenn die BigDecimal ist gleich val
Können Sie tun, sthg wie diese;
Ressource : http://www.tutorialspoint.com/java/math/bigdecimal_compareto.htm
Verwenden
BigDecimal.compareTo(val)
zu vergleichen, wenn Ihre Zahl größer, kleiner oder gleich.new BigDecimal(0)
stattdessenBigDecimal.ZERO
BigDecimal.valueOf()
ist prefferable zunew BigDecimal()
Verwendung der signum-Methode von BigDecimal-Klasse:
Wie gesagt von Kirill Karandin, Sie können schreiben Sie eine generische Methode:
Der Unterschied ist, dass die innere Summe wird zurückgegeben:
Folglich, wenn die Summe größer ist als 0 (oder einfach nicht gleich 0) der x-Variablen gehören zu dem Intervall.