Floats ausgeben, Ints parsen
Wie man Float-Zahlen richtig formatiert ausgibt und
Integer-Werte aus Strings herauszieht.
Strings zu Zahlen parsen
Um aus einem String einen Integer zu machen, muss man einfach
folgendes tun:
Integer.parseInt(string);
Um einen String in einen Float oder Double umzuwandel geht es ganz genauso:
Float.parseFloat(string);
Double.parseDouble(string);
Allerdings muss hierbei beachtet werden, das nur Strings, die Zahlen repräsentieren,
geparset werden können. Ansonsten gibts eine NumberFormatException zur Laufzeit.
Um eine Fließpunktzahl formatiert auszugeben, benutzt
man ein DecimalFormat-Objekt. Wenn die
Aufgabe z.B. vorgibt, dass der Wert auf 3 Nachkommastellen
genau ausgegeben werden soll,
DecimalFormat d = new DecimalFormat("0.000");
System.out.println( "Value: " + (d.format(5.6281992f)) );
Das Problem was man dabei oft kriegt ist, dass die
Ausgabe ein Komma enthält (weil z.B. als Umgebungssprache
"Deutsch" eingestellt ist), die Aufgaben der ACM aber
meistens einen Punkt statt dem Komma erwarten.
- Brachiale Lösung: Ersetzen aller Kommas im Ausgabestring durch Punkt:
(d.format(5.6281992f)).replaceAll(",",".");
- Schöne Lösung: Man benutzt ein NumberFormat bzw. DecimalFormat-Objekt, dass eine Methode hat, die die Zahl in der richtigen "Sprache" ausgibt:
NumberFormat nf = NumberFormat.getNumberInstance(loc);
DecimalFormat df = (DecimalFormat)nf;
System.out.println(df.format(5.6281992f)+ "\n");
ACHTUNG: Das ist noch ungetestet!!