Как напечатать двойник с двумя десятичными знаками в Android? [дубликат]
этот вопрос уже есть ответ здесь:
может быть, это глупый вопрос, но я не могу догадаться, как решить ее, если это не создает метод. Может быть, есть" естественный способ " сделать это, например, в C. Вот в чем проблема:
I есть ВАР:
double a;
и я хочу показать его только с 2 или 3 знаков после запятой. Когда я пытаюсь показать это:
Text.setText("Value of a: " + String.valueOf(a));
это дает что-то вроде:
значение a: 5.234966145
а я бы хотел просто
значение a: 5.23
без изменения реального значения a, поэтому он показывает приблизительное число, но работает с реальным числом.
6 ответов:
вы можете использовать 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. Оба решения отлично работают в локали США и Великобритании.