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.

Einen Float formatieren

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!!

Comments

 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback