2015-09-02 5 views
0

Я ищу для печати двойной переменной точности, но без округления. Например:Печать двойная с переменной точностью (не округленная) в Java

Scanner input = new Scanner(System.in); 
    double num; 
    System.out.println("Enter a double:"); 
    num = input.nextDouble(); 
    int precision; 
    System.out.println("Enter precision:"); 
    precision = input.nextInt(); 

Теперь я хочу напечатать num до десятичной точки точности. Есть ли простой способ распечатать это?

EDIT: Я не видел другого вопроса, как использовать переменное значение. Параметр DecimalFormat округляет число, которое я не хочу. В идеале, я ищу способ, чтобы использовать переменную в:

"%.nf" 

вместо

"%.3f" 
+0

Вопрос, который считается дубликатом, на самом деле не отвечает на мой вопрос. Я попытался использовать DecimalFormat и округлить число. – user4332594

ответ

1

использования, как отформатированный String, "%.nf", где n заменяется числом знаков после запятой.

Пример:

System.out.printf("%.1f, %.2f\n", 1.234d, 1.234d); 
// 1.2, 1.23 

См the Javadoc.

Чтобы вставить переменную в это, просто сделайте .

+0

Спасибо. Тем не менее, я не знаю числа десятичных знаков заранее, поэтому было бы невозможно использовать целое значение вместо n. – user4332594

+0

@ user4332594 просто сделайте ''%. " + intValue + "f" '. – bcsb1001

Смежные вопросы