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

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

У меня есть var:

double a;

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

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

Он дает что-то вроде:

Значение a: 5.234966145

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

Значение a: 5.23

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

Ответ 1

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

Ответ 2

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

Ответ 3

Прежде чем использовать 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));

Ответ 4

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

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

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

DecimalFormat formater = new DecimalFormat("0.00"); 

Ответ 5

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

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

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

Ответ 6

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

и

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

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