2016-08-16 4 views
0

Wie kann ich nur 2 Dezimalstellen von der eingegebenen Antwort anzeigen? Wenn ich dies tue, ist die Antwort andersJava setzt 2 Dezimalstellen in Float

Scanner user_input = new Scanner(System.in); 
float num; 
DecimalFormat f = new DecimalFormat("##.00"); 
System.out.println("Enter any number"); 
num = user_input.nextFloat(); 
System.out.println("Square of "+num+" is: "+f.format(num)+Math.pow(num,2)); 
} 

Antwort

0

Sie müssen die Leistung mit der Antwort summieren und dann das Ergebnis formatieren. Momentan formatieren Sie die Zahl und führen danach die Potenzfunktion aus, die bewirkt, dass das Ergebnis im Rohformat ist.

Ändern Sie bitte Ihre Ausgangsleitung:

System.out.println("Square of "+num+" is: "+f.format(num+Math.pow(num,2))); 

So für eine Eingabe von 21,12345 das Ergebnis aussehen würde:

Enter any number 21.12345 
Square of 21.12345 is: 467.32 
+0

Ihr Code war korrekt, aber lassen Sie mich einige Dinge beheben. Ich denke, dass Sie den Bezeichner neben dem Math.pow nicht setzen müssen, weil die eingegebene Zahl ein anderes zum Ergebnis addiert, so wird die Ausgabe 467.32 anstelle von 446.20 Ich hoffe, dass Sie es bekommen, und Entschuldigung für mein schlechtes Englisch! – cookieWarrior

0

System.out.printf Werke wie C printf Funktion. Sie können damit Zeichenfolgen mit Platzhaltern formatieren. Es kann auch die Formatierung float Werte übernehmen.

Der obige Code sollte darauf achten, dass nur 2 Nachkommastellen gedruckt werden. %n ist für neue Zeile.

Weitere Informationen erhalten Sie den Link https://docs.oracle.com/javase/tutorial/java/data/numberformat.html

Wenn Sie nur String formatiert müssen, dann können Sie String.format Methode verwenden, die den formatierten String mit Platzhalter Werten gefüllt zurückgibt.

Verwandte Themen