Как напечатать двойник с двумя десятичными знаками в Android? [дубликат]


этот вопрос уже есть ответ здесь:

может быть, это глупый вопрос, но я не могу догадаться, как решить ее, если это не создает метод. Может быть, есть" естественный способ " сделать это, например, в C. Вот в чем проблема:

I есть ВАР:

double a;

и я хочу показать его только с 2 или 3 знаков после запятой. Когда я пытаюсь показать это:

Text.setText("Value of a: " + String.valueOf(a));

это дает что-то вроде:

значение a: 5.234966145

а я бы хотел просто

значение a: 5.23

без изменения реального значения a, поэтому он показывает приблизительное число, но работает с реальным числом.

6 82

6 ответов:

yourTextView.setText(String.format("Value of a: %.2f", a));

вы можете использовать DecimalFormat или String.format("%.2f", a);

перед использованием DecimalFormat вам нужно использовать следующий импорт или ваш код не будет работать:

import java.text.DecimalFormat;

код для форматирования:

DecimalFormat precision = new DecimalFormat("0.00"); 
// dblVariable is a number variable and not a String in this case
txtTextField.setText(precision.format(dblVariable));

для отображения цифр до двух десятичных знаков есть две возможности - 1) Во-первых, вы хотите отображать только десятичные цифры, если они есть. Например-i) 12.10 будет отображаться как 12.1, ii) 12.00 будет отображаться как 12. Тогда используйте-

DecimalFormat formater = new DecimalFormat("#.##"); 

2) Во-вторых, вы хотите отображать десятичные цифры независимо от десятичной присутствует, например-i) 12.10 будет отображаться как 12.10. ii) 12 будет отображаться как 12.00.Тогда используйте-

DecimalFormat formater = new DecimalFormat("#.00"); 

используйте этот:

DecimalFormat form = new DecimalFormat("0.00");
etToll.setText(form.format(tvTotalAmount) );

Примечание: данные должны быть в десятичном формате (tvTotalAmount)

textView2.setText(String.format("%.2f", result));

и

DecimalFormat form = new DecimalFormat("0.00");
         textView2.setText(form.format(result) );

...причина ошибки "NumberFormatException" в языковом стандарте для Европы, поскольку она устанавливает результат как запятую вместо десятичной точки - ошибка возникает, когда textView добавляется к числу в editText. Оба решения отлично работают в локали США и Великобритании.