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

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

07.02.2017, 20:55. Показов 13636. Ответов 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
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
09.02.2017, 18:25  [ТС]
Студворк — интернет-сервис помощи студентам
Добавлено через 5 минут
ExFau$t, спасибо за идею, а то замучился со string. Только наверно лучше double использовать, чтобы значения с плавающей запятой использовать?
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
09.02.2017, 18:32
254,53:
Цитата Сообщение от ExFau$t Посмотреть сообщение
вводим первое число 2, получается 2+0*10=2, вводим второе число 5, получается 5+2*10=25, вводим число 4, получается 4+25*10=254.
Далее вводим ",5" получается 254+5*0.1, далее вводим 3, получается 254.5+3*0.01

Добавлено через 1 минуту
Что удобно, то используй, я не знаю, что у тебя там. Если целые расчёты, то бери int, дробные - double.
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
09.02.2017, 19:05  [ТС]
Тут возникла ошибка в вычислениях, никак не могу найти. При нажатии на кнопку 1 к обоим полям добавляется значение 12(если было 0 в начале становится 12, если 34 становится 3412). Из-за чего это?
Код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 double vn=0; //промежуточное значение
    double result=0; //значение результата для вывода
    DecimalFormat nf = new DecimalFormat("#");
 
    public void printResult(double result) { //метод используется для вывода в resulTV
        if (result % 1 == 0) {
            resultTV.setText(nf.format(result));
        }
        else{
            resultTV.setText(Double.toString(result));
        }
    }
 
    public void printOperation(int operation){ //метод используется для вывода в operationTV
        String oper=Integer.toString(operation);
        if(operationTV.getText().toString().equals("0"))
            operationTV.setText(oper);
        else
            operationTV.append(oper);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.calculator);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
 
        /*Текстовые поля*/
        resultTV = (TextView) findViewById(R.id.resultEditText);
        operationTV = (TextView) findViewById(R.id.operationEditText);
 
        /*Переменные чисел*/
        one = (Button) findViewById(R.id.one);
        two = (Button) findViewById(R.id.two);
        three = (Button) findViewById(R.id.three);
        four = (Button) findViewById(R.id.four);
        five = (Button) findViewById(R.id.five);
        six = (Button) findViewById(R.id.six);
        seven = (Button) findViewById(R.id.seven);
        eight = (Button) findViewById(R.id.eight);
        nine = (Button) findViewById(R.id.nine);
        zero = (Button) findViewById(R.id.zero);
 
        clear =(Button) findViewById(R.id.clear);
        add=(Button)findViewById(R.id.add);
 
        final View.OnClickListener onClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    switch (v.getId()) {
                        case R.id.zero:
                                vn=0+vn*10;
                                result= result+vn;
                                printResult(result);
                                result=0;
                            if(!operationTV.getText().toString().equals("0"))
                                operationTV.append("0");
                            break;
                        case R.id.one:
                                vn=1+vn*10;
                                result= result+vn;
                                printResult(result);
                                result=0;
                                printOperation(1);
 
                        case R.id.two:
                            vn=2+vn*10;
                            result= result+vn;
                            printResult(result);
                            result=0;
                            printOperation(2);
 
                    }
                }
 
 
 
        };
        one.setOnClickListener(onClickListener);
        two.setOnClickListener(onClickListener);
        three.setOnClickListener(onClickListener);
        four.setOnClickListener(onClickListener);
        five.setOnClickListener(onClickListener);
        six.setOnClickListener(onClickListener);
        seven.setOnClickListener(onClickListener);
        eight.setOnClickListener(onClickListener);
        nine.setOnClickListener(onClickListener);
        zero.setOnClickListener(onClickListener);
        clear.setOnClickListener(onClickListener);
        add.setOnClickListener(onClickListener);
 
 
    }
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
09.02.2017, 19:08  [ТС]
Вот скриншот, после нажатия на кнопку со значением 1 1раз
Миниатюры
Форматированный вывод в TextView  
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
10.02.2017, 19:02  [ТС]
проблема решена, break забыл

Добавлено через 23 часа 42 минуты
Чтобы не создавать лишнюю тему, есть метод
Java
1
2
3
4
5
6
7
8
9
public void VN(int varnumber, int pointSet){
        if(pointSet!=0){
            vn = vn+varnumber*Math.pow(0.1,pointSet);
            pointSet=pointSet+1;
        }
        else{
            vn = varnumber + vn * 10;
        }
    }
где varnumber - значение нажимаемой кнопки (нажали в калькуляторе кнопку 9, varnumber=9)
pointSet - значение, показывающее нажата ли запятая для ввода дробного числа значение 0 -не нажато; 1 - нажата(1 разряд); 2 - нажат(2 разряд) и т.д
vn - временное вводимое число

Добавлено через 37 секунд
Так он ругается на строчку pointSet=pointSet+1; типо она никогда не меняется

Добавлено через 1 минуту
Почему он не прибавляет?
Ошибка
The value pointSet+1 assigned to 'pointSet' is never used
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
10.02.2017, 19:05
ты читать не умеешь?
он прибавляет, там написано что результат потом нигде не используется

скорее всего в классе объявлено поле с таким именем как и второй параметр в этом методе
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
10.02.2017, 19:20  [ТС]
нигде больше не используется
Код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
public class Calculator extends AppCompatActivity {
 
 
    /*** Текстовые поля*/
    TextView resultTV;
    TextView operationTV;
    /**Переменные кнопок*/
    Button one;
    Button two;
    Button three;
    Button four;
    Button five;
    Button six;
    Button seven;
    Button eight;
    Button nine;
    Button zero;
 
    Button clear;
    Button add;
    Button point;
 
 
    double vn=0; //промежуточное значение
    double result=0; //значение результата для вывода
    int pointSet=0;
    int varnumber; //переменная показывает значение кнопки-цифры
    DecimalFormat nf = new DecimalFormat("#");
 
    public void VN(int varnumber, int pointSet){
        if(pointSet!=0){
            vn = vn+varnumber*Math.pow(0.1,pointSet);
            pointSet=pointSet+1;
        }
        else{
            vn = varnumber + vn * 10;
        }
    }
    public void PrintResult(double result) { //метод используется для вывода в resulTV
        if (result % 1 == 0) {
            resultTV.setText(nf.format(result));
        }
        else{
            resultTV.setText(Double.toString(result));
        }
    }
 
    public void PrintOperation(int operation){ //метод используется для вывода в operationTV
        String oper=Integer.toString(operation);
        if(operationTV.getText().toString().equals("0"))
            operationTV.setText(oper);
        else
            operationTV.append(oper);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.calculator);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
 
        /*Текстовые поля*/
        resultTV = (TextView) findViewById(R.id.resultEditText);
        operationTV = (TextView) findViewById(R.id.operationEditText);
 
        /*Переменные чисел*/
        one = (Button) findViewById(R.id.one);
        two = (Button) findViewById(R.id.two);
        three = (Button) findViewById(R.id.three);
        four = (Button) findViewById(R.id.four);
        five = (Button) findViewById(R.id.five);
        six = (Button) findViewById(R.id.six);
        seven = (Button) findViewById(R.id.seven);
        eight = (Button) findViewById(R.id.eight);
        nine = (Button) findViewById(R.id.nine);
        zero = (Button) findViewById(R.id.zero);
 
        clear =(Button) findViewById(R.id.clear);
        add=(Button)findViewById(R.id.add);
        point=(Button)findViewById(R.id.point);
 
        final View.OnClickListener onClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                switch (v.getId()) {
                    case R.id.zero:
                        vn = 0 + vn * 10;
                        result = result + vn;
                        PrintResult(result);
                        result = 0;
                        if (!operationTV.getText().toString().equals("0"))
                            operationTV.append("0");
                        break;
                    case R.id.one:
                        vn = 1 + vn * 10;
                        result = result + vn;
                        PrintResult(result);
                        result = 0;
                        PrintOperation(1);
                        break;
                    case R.id.two:
                        vn = 2 + vn * 10;
                        result = result + vn;
                        PrintResult(result);
                        result = 0;
                        PrintOperation(2);
                        break;
                    case R.id.three:
                        vn = 3 + vn * 10;
                        result = result + vn;
                        PrintResult(result);
                        result = 0;
                        PrintOperation(3);
                        break;
                    case R.id.four:
                        vn = 4 + vn * 10;
                        result = result + vn;
                        PrintResult(result);
                        result = 0;
                        PrintOperation(4);
                        break;
                    case R.id.five:
                        vn = 5 + vn * 10;
                        result = result + vn;
                        PrintResult(result);
                        result = 0;
                        PrintOperation(5);
                        break;
                    case R.id.six:
                        vn = 6 + vn * 10;
                        result = result + vn;
                        PrintResult(result);
                        result = 0;
                        PrintOperation(6);
                        break;
                    case R.id.seven:
                        vn = 7 + vn * 10;
                        result = result + vn;
                        PrintResult(result);
                        result = 0;
                        PrintOperation(7);
                        break;
                    case R.id.eight:
                        vn = 8 + vn * 10;
                        result = result + vn;
                        PrintResult(result);
                        result = 0;
                        PrintOperation(8);
                        break;
                    case R.id.nine:
                        VN(9,pointSet);
                        result = result + vn;
                        PrintResult(result);
                        result = 0;
                        PrintOperation(9);
                        break;
                    case R.id.clear:
                        vn = 0;
                        result = 0;
                        pointSet=0;
                        PrintResult(result);
                        operationTV.setText("0");
                        break;
                    case R.id.point:
                        if(pointSet==0){
                            pointSet=1;
                            operationTV.append(".");
                        }
 
 
 
                }
            }
        };
        one.setOnClickListener(onClickListener);
        two.setOnClickListener(onClickListener);
        three.setOnClickListener(onClickListener);
        four.setOnClickListener(onClickListener);
        five.setOnClickListener(onClickListener);
        six.setOnClickListener(onClickListener);
        seven.setOnClickListener(onClickListener);
        eight.setOnClickListener(onClickListener);
        nine.setOnClickListener(onClickListener);
        zero.setOnClickListener(onClickListener);
 
        clear.setOnClickListener(onClickListener);
        add.setOnClickListener(onClickListener);
        point.setOnClickListener(onClickListener);
 
 
 
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_calculator, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
 
        return super.onOptionsItemSelected(item);
    }
}
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
10.02.2017, 19:23
Цитата Сообщение от danilshik Посмотреть сообщение
нигде больше не используется
об этом и пишется в том сообщении, какие проблемы?
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
10.02.2017, 19:24  [ТС]
если бы он прибавлял то следующее число после 9.9 было бы 9.99 а не 10.8
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
10.02.2017, 19:26
ты передаешь число в метод, там это число увеличивается и ты ожидаешь что оно изменится там, откуда передавалось?
добро пожаловать в джаву, тут это не проходит
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
10.02.2017, 19:27  [ТС]
переменная же глобальная? почему она не изменяется? это особенность java? так когда так изменить?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
10.02.2017, 19:32
я тебе сразу написал что она объявлена как поле класса
в методе ты принимаешь параметр с точно таким же именем как и эта глобальная переменная

по хорошему надо параметр переименовать, или писать
Java
1
this.pointSet=pointSet+1;
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
10.02.2017, 19:32
Ты её объявил в начале метода:
Java
1
int pointSet
Прибавил:
Java
1
pointSet=pointSet+1;
И метод кончился, итог: переменная нигде не используется.
Если переменная глобальная, то эту в методе убери, если локальная, то присваивай ей значение, возвращаемое из метода.
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
10.02.2017, 19:41  [ТС]
спасибо, понял)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.02.2017, 19:41

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru