Преобразование числа в 2 десятичных знака в 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);
Любая помощь в том, как это сделать, будет отличной, спасибо.
Ответы
Ответ 1
попробуйте new DecimalFormat("#.00");
Обновление
double angle = 20.3034;
DecimalFormat df = new DecimalFormat("#.00");
String angleFormated = df.format(angle);
System.out.println(angleFormated); //output 20.30
Ваш код не использовал decimalformat правильно
0 в шаблоне означает обязательную цифру, символ # означает необязательную цифру.
обновление 2: проверьте ниже ответ
Если вы хотите 0.2677
отформатировать как 0.27
, вы должны использовать new DecimalFormat("0.00");
, иначе это будет .27
Ответ 2
DecimalFormat df=new DecimalFormat("0.00");
Используйте этот код для получения точных двух десятичных знаков.
Даже если значение равно 0.0, оно выдаст u 0.00 в качестве выхода.
Вместо этого, если вы используете:
DecimalFormat df=new DecimalFormat("#.00");
Он не конвертирует 0.2659 в 0.27. Вы получите ответ как .27.
Ответ 3
Попробуйте следующее: String.format("%.2f", angle);
Ответ 4
Try
DecimalFormat df = new DecimalFormat("#,##0.00");