Formatieren mit DecimalFormat wirft Ausnahme - "Cannot format given Object as a Number"

Blick mag dies wie ein wiederholter Frage, aber ich habe versucht, in alle die links unten an und kann nicht eine richtige Antwort.

Cannot format given Object as a Anzahl ComboBox

Illegal Argument Exception

Aber ich bin nicht immer was falsch. Hier ist mein code

DecimalFormat twoDForm = new DecimalFormat("#.##");
double externalmark = 1.86;
double internalmark = 4.0;
System.out.println(String.valueOf((externalmark*3+internalmark*1)/4));
String val = String.valueOf((externalmark*3+internalmark*1)/4);
String wgpa1=twoDForm.format(val); //gives exception
String wgpa2=twoDForm.format((externalmark*3+internalmark*1)/4)); //works fine
System.out.println(wgpa1);

Den format Methode nimmt Objekttyp argument ist also, warum ich an einem String-Objekt, das gibt Ausnahme

Exception in thread "main" java.lang.IllegalArgumentException: Cannot
format-Objekts als Zahl.

Aber wenn ich double-Wert als argument, das Programm funktioniert einwandfrei. Aber wenn die Methode definiert ist, mit Object Typ-argument, warum ich bin immer eine Ausnahme, indem Sie eine String und nicht immer Ausnahme, indem Sie double?

Schreibe einen Kommentar