BigDecimal und Not a Number

ARadauer

Top Contributor
Ich hab einen fachlichen Anwendungfall wo ich unterscheiden muss, ob ein BegDecimal nicht gesetzt ist oder das Konvertieren fehl schlug.
Ich Konvertiere an einer anderen Stelle als ich dann Validieren. Gibt der benutzer nun einen Blödsinn ein, kann ich nicht konvertieren und geb null zurück. Ich weiß nun beim validieren nicht mehr ob er nix oder ein falschen Format eingegeben hat, möchte das aber gerne bei der Ausgabe berücksichtigen... Ein NaN wie bei double oder float wäre perfekt. Leider funktioniert das bei BigDecimal nicht...
Java:
new BigDecimal(Double.NaN)
Oder mach ich es falsch?


Die Alternative eine Exception beim Konvertieren beim Konvertieren zu schmeiß und nachher zu berücksichtigen, würde ich gerne vermeiden.....
 
S

SlaterB

Gast
Java:
    public BigDecimal(double val) {
 	if (Double.isInfinite(val) || Double.isNaN(val))
 	    throw new NumberFormatException("Infinite or NaN");
da ist nicht viel zu machen..

----

nicht ungenannt bleiben soll:
lege dir eine statische Konstante an, so wie es BigDecimal.ZERO gibt,
static XY = irgendein BigDecimal,
später mit == vergleichen,

oder irgendwas Richtung
Java:
        BigDecimal k = new BigDecimal(Double.MAX_VALUE);
        k = k.multiply(k);
        System.out.println(k.doubleValue());
das liefert zumindest Infinity
 

Gregorrr

Bekanntes Mitglied
Ich hab einen fachlichen Anwendungfall wo ich unterscheiden muss, ob ein BegDecimal nicht gesetzt ist oder das Konvertieren fehl schlug.
Ich Konvertiere an einer anderen Stelle als ich dann Validieren. Gibt der benutzer nun einen Blödsinn ein, kann ich nicht konvertieren und geb null zurück. Ich weiß nun beim validieren nicht mehr ob er nix oder ein falschen Format eingegeben hat, möchte das aber gerne bei der Ausgabe berücksichtigen... Ein NaN wie bei double oder float wäre perfekt. Leider funktioniert das bei BigDecimal nicht...
Java:
new BigDecimal(Double.NaN)
Oder mach ich es falsch?


Die Alternative eine Exception beim Konvertieren beim Konvertieren zu schmeiß und nachher zu berücksichtigen, würde ich gerne vermeiden.....

Wieso willst du die Exception nicht nach oben propagieren? Dafür sind sie ja gemacht, dass man aus dem linearen Programmfluss orthogonal verzweigen kann. Spaghetti wird bei relativ sparsamer Anwendung wenig gekocht.
 

bERt0r

Top Contributor
Die Alternative eine Exception beim Konvertieren beim Konvertieren zu schmeiß und nachher zu berücksichtigen, würde ich gerne vermeiden.....
Ich gehe davon aus, dass du erst eine Menge Doubles in BigDecimal konvertieren willst und danach erst die Validierung vornehmen möchtest.

Spontan würde mir einfallen, ist aber nicht sehr schön:
Java:
BigDecimal d=new BigDecimal(0)
		{
			@Override
			public double doubleValue()
			{
				return Double.NaN;
			}
		};
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Robertop BigDecimal ergänzt unnötige 0 am Ende Allgemeine Java-Themen 6
M Probleme mit BigDecimal Allgemeine Java-Themen 1
ARadauer Checksumme über BigDecimal Werte Allgemeine Java-Themen 11
M float, double, BigDecimal Allgemeine Java-Themen 5
A Ungünstige BigDecimal-Klasse Allgemeine Java-Themen 44
R BigDecimal, Position des Kommas Allgemeine Java-Themen 2
J Umstellung von double auf BigDecimal Allgemeine Java-Themen 5
F BigDecimal devide Allgemeine Java-Themen 5
S wiedermal ein kleines Problem mit BigDecimal Allgemeine Java-Themen 5
B BigDecimal Schleifen Allgemeine Java-Themen 9
J BigInteger und BigDecimal im Eclipse-Debugger Allgemeine Java-Themen 3
hdi Probleme beim Rechnen mit BigDecimal Allgemeine Java-Themen 5
N BigDecimal falsch formatiert bei Locale.GERMANY Allgemeine Java-Themen 3
S String to BigDecimal Allgemeine Java-Themen 6
N BigDecimal.divide Problem Allgemeine Java-Themen 6
N setscale bigdecimal Allgemeine Java-Themen 3
M String to BigDecimal Allgemeine Java-Themen 7
N BigDecimal formatieren Allgemeine Java-Themen 2
André Uhres BigDecimal in HashSet eingefügt, aber nicht in TreeSet Allgemeine Java-Themen 2
G BigDecimal Rundet falsche Allgemeine Java-Themen 4
T bigdecimal.pow(0.5) Allgemeine Java-Themen 19
0 Keine clone-Methode für BigDecimal und BigInteger? Allgemeine Java-Themen 3
Zrebna Random Number - Generische Formel zwischen zwei INKLUSIVEN Werten Allgemeine Java-Themen 16
S Variablen Prüfen ob Number vom Typ Integer, Float, Double, ... ist Allgemeine Java-Themen 2
W Datentypen Datentyp "Number" casten? Allgemeine Java-Themen 5
F Fehler: Bad file number Allgemeine Java-Themen 3
S Bad version number in .class file Allgemeine Java-Themen 5
M java.lang.UnsupportedClassVersionError: Bad version number i Allgemeine Java-Themen 5
S Klasse Number Format Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben