#java #android #math #decimalformat
#java #Android #математика #decimalformat
Вопрос:
Я хочу округлить все мои числа до 1 знака после запятой.
Например
22.0
-6.1
Я использую:
DecimalFormat decimalFormat = new DecimalFormat("0.0");
middlePanelTextView.setText(decimalFormat.format(score.getElevationAngle()));
Но к целым числам не добавляется 0.
-18 should be -18.0 etc.
вместо этого мое значение отображается как -18.
Комментарии:
1. Есть ли вероятность, что
middlePanelTextView
это сокращает текст? Правильно ли отображается -18.5? Кроме того, не могли бы вы попробовать это:DecimalFormat decimalFormat = new DecimalFormat("0.0", new DecimalFormatSymbols(Locale.ENGLISH));
2. Какой тип значения возвращает метод
score.getElevationAngle()
?3.
score.getElevationAngle()
возвращает двойное4. Для меня ваш код работает отлично и возвращает -18.0 при присвоении ему значения -18.
5. Шихан Алам:) Это работает именно так, как говорит Лиро. Я протестировал это. Должны быть некоторые другие ошибки.
Ответ №1:
.@ представляет значащую цифру 0, а не.
.# представляет собой необязательную цифру, поэтому попробуйте «# # @.@»
http://developer.android.com/reference/java/text/DecimalFormat.html
Я не уверен в синтаксисе: но приведенная выше статья должна дать вам все, что вам нужно.
Ответ №2:
Попробуйте
middlePanelTextView.setText("" decimalFormat.format(score.getElevationAngle()));
Ответ №3:
Мой TextView отключал цифры. Моя ошибка. Уменьшенный размер шрифта.
Ответ №4:
Попробуйте использовать
DecimalFormat decimalFormat = new DecimalFormat("#.#");
вместо этого в качестве параметра конструктора.
Комментарии:
1. Пожалуйста, прочитайте OP еще раз, он хочет получить ноль, поэтому # здесь неверный шаблон.
Ответ №5:
Попробуйте использовать следующий код:
DecimalFormat decimalFormat = new DecimalFormat("0.0#");