Преобразование числа в два десятичных знака в Java

Я хочу преобразовать число в 2 десятичных знака (Всегда показать два десятичных знака) во время выполнения. Я пробовал код, но он работает, как показано ниже

 20.03034 >> 20.03
 20.3 >> 20.3  ( my code only rounds not converts )

, однако я хочу, чтобы он делал это:

 20.03034 >> 20.03
 20.3 >> 20.30 (convert it to two decimal places)

Мой код ниже:

angle = a variable
angle_screen =  a variable

DecimalFormat df = new DecimalFormat("#.##");
angle = Double.valueOf(df.format(angle));
angle_screen.setText(String.valueOf(angle) + tmp);

Любая помощь в том, как это сделать, будет будь отличным, спасибо.

27
задан Mat 8 January 2012 в 17:37
поделиться

2 ответа

попробуйте new DecimalFormat("#.00");

обновить :

    double angle = 20.3034;

    DecimalFormat df = new DecimalFormat("#.00");
    String angleFormated = df.format(angle);
    System.out.println(angleFormated); //output 20.30

Ваш код неправильно использовал десятичный формат

0 в шаблон означает обязательную цифру, # означает дополнительную цифру.

обновление 2 : проверьте ответ ниже

Если вы хотите, чтобы 0.2677 отформатировано как 0.27, вы должны использовать new DecimalFormat("0.00");, иначе это будет .27

70
ответ дан 28 November 2019 в 04:05
поделиться

Попробуйте это: String.format("%.2f", angle);

14
ответ дан 28 November 2019 в 04:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: