2016-08-16 2 views
0

Как отображать только 2 десятичных знака из введенного ответа? при этом у меня другой вопросJava, помещая 2 десятичных знака в поплавок

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)); 
} 

ответ

0

Вам нужно суммировать мощность с ответом, а затем отформатировать результат. В настоящее время вы форматируете число и затем выполняете функцию питания, заставляя результат быть в необработанном формате.

Измените строку вывода на:

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

Так для ввода 21.12345 результат будет выглядеть следующим образом:

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

Ваш код был прав, но позвольте мне исправить некоторые вещи. Я думаю, вам не нужно указывать идентификатор рядом с Math.pow, потому что введенный номер добавит еще один результат, поэтому выход станет 467.32 вместо 446.20. Надеюсь, вы получите его и извините за мой плохой английский! – cookieWarrior

0

System.out.printf работ как C printf функции. Вы можете использовать его для форматирования строки с заполнителями. Он также может позаботиться о форматировании значений float.

System.out.printf("Square of %.2f is: %.2f %n" , num, num * num); 

Над кодом следует позаботиться о печати только двух цифр после десятичной дроби. %n - для новой линии.

Для получения дополнительной информации посетите эту ссылку https://docs.oracle.com/javase/tutorial/java/data/numberformat.html

Если вам просто нужно отформатирован String, то вы можете использовать String.format метод, который возвращает отформатированную строку, заполненные значения заполнителей.