2016-03-16 2 views
0

У меня есть небольшая проблема с форматом печати. Я хочу напечатать 2 цифры после десятичной точки, если число не является целым числом (например, 55,53467 -> 55,53) и 1 цифрой после десятичной цифры , если число целое или число раундов после десятичной точки (для пример 2.00 -> 2.0 или 5.10 -> 5.1).Как печатать до двух цифр после десятичной точки?

кусок кода, который у меня есть:

public String toString() { 

    return String.format("%+.2f%+.2fX%+.2fX^2%+.2fX^3%+.2fx^4", this.A0.getCoefficient() 
                   , this.A1.getCoefficient() 
                   , this.A2.getCoefficient() 
                   , this.A3.getCoefficient() 
                   , this.A4.getCoefficient()); 
} 

, но он всегда печатает 2 цифры, конечно. большое спасибо

+1

«всегда печатает две цифры, конечно.» Затем измените его. Используйте логику 'if' /' else'. –

+1

Почему? почему бы просто не сказать 2,00, чтобы сохранить порядок? Если аргумент «второй нуль ничего не добавляет», то уверен, но и не первый. Если вы хотите показать формулу, «2x + 4.3y» имеет смысл, «2.0x + 4.3y» этого не делает. –

+1

Возможный дубликат [Форматирование чисел с плавающей запятой] (http://stackoverflow.com/questions/4733089/formatting-floating-point-numbers) –

ответ

0

Вы можете воспользоваться DecimalFormat, например:

public static String format(double num, double places) { 
    String format = "#."; 
    for(int i=0; i<places; i++) format += "0"; 
    DecimalFormat df = new DecimalFormat(format); 
    return df.format((int)(num * Math.pow(10, places))/(double) Math.pow(10, places)); 
} 

Затем вы можете использовать его для любого десятичного знака:

System.out.println(format(1, 2)); // 1.00 
System.out.println(format(234, 2)); // 234.00 
System.out.println(format(-55.12345, 2)); // -55.12 
System.out.println(format(7.2, 2)); // 7.20 
0

В этом случае я буду форматировать поплавки с DecimalFormat «0.0 #» (# говорит: только установить, если не ноль), на String-Vars и передать результаты функции String.format.

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