Kann jemand eine effiziente Art und Weise der Bestimmung, ob eine BigDecimal
ist ein ganzzahliger Wert im mathematischen Sinne empfehlen?Prüfen, ob BigDecimal ganzzahliger Wert ist
Derzeit habe ich den folgenden Code:
private boolean isIntegerValue(BigDecimal bd) {
boolean ret;
try {
bd.toBigIntegerExact();
ret = true;
} catch (ArithmeticException ex) {
ret = false;
}
return ret;
}
... aber möchte die Objekterstellung Overhead bei Bedarf vermeiden. Zuvor verwendete ich bd.longValueExact()
, die das Erstellen eines Objekts vermeiden würde, wenn die BigDecimal
ihre kompakte Darstellung intern verwendet, aber offensichtlich fehlschlagen würde, wenn der Wert zu groß wäre, um in ein Long zu passen.
Jede Hilfe wird geschätzt.
Komisch - Ich kann 5 Antworten auf mein Profil sehen, aber wenn ich zu der Frage navigiere, sehe ich nur diese beiden. Ist das Absicht? (d. h. Ist die Antwort unterdrückt, nachdem ich eine Antwort akzeptiert habe?) – Adamski