С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/64: Рейтинг темы: голосов - 64, средняя оценка - 4.89
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186

Форматированный вывод в TextView

07.02.2017, 20:55. Показов 13465. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть переменная типа double. Нужно если это число целое(например 10.0 -->10), вывести только его целое значение в TextView. Как это реализовать?
Проверяю так:
Java
1
if(result%1==0)
.
И на будущее: как регулировать количество знаков после запятой?
DecimalFormat не предлагать, использую API ниже 24

Добавлено через 36 секунд
И да, сначала конвертирую double в string и потом вывожу только

Добавлено через 19 секунд
Java
1
2
stringResult=Double.toString(result);
            resultTV.setText(stringResult);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.02.2017, 20:55
Ответы с готовыми решениями:

Форматированный вывод чисел
При считывании датчиков я получаю число типа float или double? Помоему все же float. Далее я записываю это число в поток. Но проблема в...

Вывод в TextView
Здраствуйте, я новичок и у меня возник первый вопрос: есть TextView tv1 и есть "InetAddress Address =...

Вывод в TextView
Здраствуйте, я новичок и у меня возник первый вопрос: есть TextView tv1 и есть "InetAddress Address =...

33
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
07.02.2017, 21:04
Если преобразовать double в int, то дробная часть уйдёт. Наверное, ещё как-то можно. По второму вопросу используй String.format().
0
 Аватар для Hellrider_
50 / 50 / 4
Регистрация: 12.03.2013
Сообщений: 171
07.02.2017, 22:26
Стринг формат рулит - можно задать шаблон и извращаться как угодно, главное вкурить как правильно писать эти форматирующие символы) вот пример: разделяем разряды пробелом, 2 цифры после запятой и еще чето, уже не помню, постоянно перечитываю доку по этим значениям, но запомнить эту кутерьму не просто.
Java
1
String.format(Locale.FRENCH, "%#,.2f", double);
0
145 / 134 / 22
Регистрация: 28.06.2015
Сообщений: 674
08.02.2017, 10:48
Цитата Сообщение от danilshik Посмотреть сообщение
И на будущее: как регулировать количество знаков после запятой?
Вот как раз так
double a = 2223.34500;
double b = 4.00;
NumberFormat nf = new DecimalFormat("#.######");
System.out.println(nf.format(a));
System.out.println(nf.format(b));
Цитата Сообщение от danilshik Посмотреть сообщение
DecimalFormat не предлагать, использую API ниже 24
Я тут не понял. А как API Анроида связали с Java?
0
 Аватар для Hellrider_
50 / 50 / 4
Регистрация: 12.03.2013
Сообщений: 171
08.02.2017, 14:23
Цитата Сообщение от Vladimir93 Посмотреть сообщение
Я тут не понял. А как API Анроида связали с Java?
Спросите у тех кто связал, но так оно и есть, на пример новые классы для работы с временем и датой в java поддерживаются только на самых последних апи и то я не уверен. Думаю таких примеров можно еще найти
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
08.02.2017, 14:30
Hellrider_, https://developer.android.com/... ormat.html
Added in API level 1
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.02.2017, 14:35
Цитата Сообщение от danilshik Посмотреть сообщение
DecimalFormat не предлагать, использую API ниже 24
у тебя неправильный импорт
вместо import android.icu.text.DecimalFormat;
надо import java.text.DecimalFormat;

Java
1
DecimalFormat df = new DecimalFormat("#.######");
работает как требуется
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
09.02.2017, 13:58  [ТС]
Не работает, или я делаю не так?
Java
1
2
3
4
5
6
7
8
9
10
11
public void Formatt(double result){
 
        if(result%1==0){
            stringResult=String.format("%d",Double.toString(result));
        }
        else{
            stringResult=Double.toString(result);
            }
        resultTV.setText(stringResult);
 
    }
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
09.02.2017, 14:07
Всё не так, особенно это: "%d" -> Double.toString(result)

Добавлено через 4 минуты
danilshik, http://study-java.ru/uroki-jav... ta-v-java/ держи.
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
09.02.2017, 14:40  [ТС]
Нефига не понял, там везде в примерах выводится в консоль, и выводится числа, а мне выводить нужно строку в TextView
Выводит ошибку java.util.IllegalFormatConversionExcepti on: %d can't format java.lang.Double arguments
Java
1
2
3
4
5
6
7
8
9
10
11
12
public void valueOfResult(double result){
 
        if(result%1==0){
 
            stringResult=String.format(Locale.ENGLISH,"%d",result);
        }
        else{
            stringResult=Double.toString(result);
            }
        resultTV.setText(stringResult);
 
    }
Выдает ошибку java.util.IllegalFormatConversionExcepti on: %d can't format java.lang.String arguments
Java
1
2
3
4
5
6
7
8
9
10
11
12
public void valueOfResult(double result){
 
        if(result%1==0){
            String over=Double.toString(result);
            stringResult=String.format(Locale.ENGLISH,"%d",over);
        }
        else{
            stringResult=Double.toString(result);
            }
        resultTV.setText(stringResult);
 
    }
Просто напишите как правильно, чтобы я запомнил. И да вопрос, в TextView обязательно нужно string выводить или можно сам double или int
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
09.02.2017, 14:51
пффф, короче %d - это decimal, не string. Я тебе скинул, чтобы ты посмотрел, как разные форматы оформляются, на вывод в консоль не обращай внимания.

Добавлено через 2 минуты
вот пример:
"%1$+020.10f"
Разберем данную инструкцию с конца:

f — указывает на то, что выводим число с плавающей точкой.
.10 — выведенное число будет содержать 10 знаков после запятой.
20 — всего выведенное число будет иметь ширину в 20 символов
+0 — недостающие (до 20-ти) символы будут заполнены нулями, перед числом будет указан знак (+)
1$ — данный формат применяется к первому аргументу, который находится после строки форматирования. В данном примере это было указывать не обязательно.
Добавлено через 4 минуты
Цитата Сообщение от danilshik Посмотреть сообщение
И да вопрос, в TextView обязательно нужно string выводить или можно сам double или int
charSequence требуется на входе метода setText() или id ресурса, если ты поставишь int, метод распознает это число, как идентификатор ресурса.
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
09.02.2017, 17:01  [ТС]
Короче не понял, воспользовался советом ExFau$t,
Java
1
2
3
4
5
6
7
8
9
10
public void valueOfResult(double result){
        if(result%1==0){
            int result1=(int)result;
            stringResult=Integer.toString(result1);
        }
        else{
            stringResult=Double.toString(result);
            }
        resultTV.setText(stringResult);
    }
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
09.02.2017, 17:04
все это делается через DecimalFormat в одну строку
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
09.02.2017, 17:08
Ну что непонятно? Вместо этого:
Java
1
 stringResult=String.format("%d",Double.toString(result));
вот это:
Java
1
 stringResult=String.format("%.5f",result);
где .5 - 5 знаков после запятой.

Добавлено через 2 минуты
и загугли уже DecimalFormat в самом деле...
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
09.02.2017, 17:24  [ТС]
Кажется вы не поняли, что я хотел? зачем мне вообще знаки после после запятой?
мне нужно чтобы получилось целое число, а вы меня пытаетесь уже несколько сообщений убедить в обратном. Или мы друг друга не поняли.
При вашем коде получается
Решил, как раз DecimalFormat
Миниатюры
Форматированный вывод в TextView  
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
09.02.2017, 17:27
Цитата Сообщение от danilshik Посмотреть сообщение
как регулировать количество знаков после запятой?
Ты спросил - тебе ответили.
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
09.02.2017, 17:30  [ТС]
ExFau$t, все я понял, я думал ты пишешь про "Нужно если это число целое(например 10.0 -->10), вывести только его целое значение в TextView", извини
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
09.02.2017, 17:31
Дело не в том какое число тебе нужно, а в том, что ты в поле, где требуется int, пытаешься засунуть string.

Добавлено через 1 минуту
Цитата Сообщение от danilshik Посмотреть сообщение
Нужно если это число целое(например 10.0 -->10), вывести только его целое значение в TextView
это ты написал, что решаешь так:
Java
1
if(result%1==0)
, дело твоё, это тоже будет работать.
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
09.02.2017, 17:37  [ТС]
это я пишу калькулятор, при нажатии на кнопку к переменной добавляется следующая цифра. Например при нажатии последовательно 2 5 4 получится число 254, поэтому int и не использую, конечно если вы не предложите другой вариант
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
09.02.2017, 18:15
Цитата Сообщение от danilshik Посмотреть сообщение
если вы не предложите другой вариант
да не вопрос, нужен int постоянно? используем школьную математику:
вводим первое число 2, получается 2+0*10=2, вводим второе число 5, получается 5+2*10=25, вводим число 4, получается 4+25*10=254.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.02.2017, 18:15
Помогаю со студенческими работами здесь

Вывод в textView из БД
У меня есть БД public void onCreate(SQLiteDatabase db) { // создаем таблицу с полями db.execSQL("create table...

Вывод смс в textView
Добрый день:handshake: Уже пару дней не могу разобраться с кодом. Половина кода, была свиснута с этого видео...

Вывод степени в TextView
Нужно вывести число в TextView, например: 10 в -3й степени и тд. Пытался через юникод делать, но там числа в верхнем регистре только до...

Вывод в TextView версии API
Доброго времени суток всем) Такой вопрос, мне необходимо выводить версии API в TextView на котором запущенно приложение, слышал то...

Вывод результата с TextView / Andoid
Доброго времени суток. Помогите пожалуйста, изначально программа планировалась для расчета необходимого количества сосны (либо другого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru