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.


person Sheehan Alam    schedule 07.11.2011    source источник
comment
Есть шанс, что middlePanelTextView обрежет текст? Правильно ли отображается -18,5? Кроме того, не могли бы вы попробовать это: DecimalFormat decimalFormat = new DecimalFormat("0.0", new DecimalFormatSymbols(Locale.ENGLISH));   -  person Thomas    schedule 07.11.2011
comment
Какой тип значения возвращает метод score.getElevationAngle()?   -  person Iiro Krankka    schedule 07.11.2011
comment
score.getElevationAngle() возвращает двойной   -  person Sheehan Alam    schedule 07.11.2011
comment
Для меня ваш код работает отлично и возвращает -18,0 при присвоении ему значения -18.   -  person Iiro Krankka    schedule 07.11.2011
comment
Sheehan Alam :) Все работает именно так, как говорит liro. Я проверил это. Должны быть и другие ошибки.   -  person Bhavesh    schedule 07.11.2011


Ответы (5)


.@ представляет собой значащую цифру, а 0 — нет.
.# представляет необязательную цифру. Поэтому попробуйте "##@.@"

http://developer.android.com/reference/java/text/DecimalFormat.html

Я не уверен в синтаксисе, но приведенная выше статья должна дать вам все, что вам нужно.

person xQbert    schedule 07.11.2011

Пытаться

middlePanelTextView.setText(""+decimalFormat.format(score.getElevationAngle()));
person MOleYArd    schedule 07.11.2011

Мой TextView обрезал цифры. Моя вина. Уменьшен размер шрифта.

person Sheehan Alam    schedule 07.11.2011

Попробуйте использовать

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

вместо этого в качестве параметра конструктора.

person j0ntech    schedule 07.11.2011
comment
Пожалуйста, прочитайте OP еще раз, он хочет получить ноль, поэтому # здесь неправильный шаблон. - person Thomas; 07.11.2011

Попробуйте использовать следующий код:

DecimalFormat decimalFormat = new DecimalFormat("0.0#");
person Damian    schedule 07.11.2011