Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
bako-95
9 / 9 / 4
Регистрация: 27.04.2015
Сообщений: 112
#1

Переменная не получает отрицательное значение - Программирование Android

22.08.2015, 19:44. Просмотров 276. Ответов 6
Метки нет (Все метки)

Всем привет! Если эта тема уже была то извиняюсь, просто даже не знаю как её прогуглить гуглить

Имеется код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
Random randproc = new Random();
                int randomproc = randproc.nextInt(101)-50;
 
                        double proc1 = (randomproc*0.01);
                        double proc2 =  (18.6*proc1);
                        sPref = getSharedPreferences("GLOBAL_MASS", MODE_MULTI_PROCESS);
                        String savedText = sPref.getString(GLOBAL_MASS, "");
                        double proc3 = Double.valueOf(savedText);
                        double proc4 = proc3+(proc3*proc2);
                        String proc5 = String.valueOf(proc4);
                        SharedPreferences.Editor ed = sPref.edit();
                        ed.putString(GLOBAL_MASS, proc5);
                        ed.commit();
Проблема в том, что когда randomproc имеет отрицательное значение, то строка
Java
1
double proc1 = (randomproc*0.01);
не выполняется(переменная остается без значения). Даже
Java
1
double proc1 = randomproc
не работает если randomproc меньше ноля. В чем проблема?

Добавлено через 15 минут
даже если все double поменять в int, все ровно ничего не получается
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2015, 19:44
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Переменная не получает отрицательное значение (Программирование Android):

Отрицательное значение id в SQLite - Программирование Android
Добавляю запись в БД ContentValues cv = new ContentValues(); db = openOrCreateDatabase("myDB.db", SQLiteDatabase.OPEN_READWRITE,...

Рандомная переменная, которая получает значение от 10 до 20 - CMD/BAT
Приветствую. Нужна помощь в создании рандомной переменной, которая получает значение от 10 до 20. Узнал что переменные задает команда...

TMemIniFile переменная получает значение NULL - C++ Builder
Здрасте, нужна ваша помощь. Возникла ошибка, которую я очень долго не могу решить. Ini файл: Описание=Действие фильма...

Переменная в результате выполнения замыкания получает неверное значение - C#
int position = new int; Task tsk = new Task; for (int i = 0; i < 5; i++) { ...

1C 7.x Переменная не получает значение элемента справочника или как правильно инициализировать переменную - 1С
доброго времени суток. форумчане! От непонятки решил обратиться к Вам. Вот код: //+Поиск Родителя нового ...

Написать программу, в результате выполнения которой булевская переменная t получает значение TRUE, если выполняется заданное условие... - C++
Написать программу, в результате выполнения которой булевская переменная t получает значение TRUE, если выполняется заданное условие, и...

6
Mikalai
262 / 238 / 95
Регистрация: 11.01.2015
Сообщений: 666
22.08.2015, 19:45 #2
bako-95, а как ты определяешь что она без значения остаётся? Выведи лог после её инициализации и посмотри.
0
bako-95
9 / 9 / 4
Регистрация: 27.04.2015
Сообщений: 112
22.08.2015, 19:52  [ТС] #3
Mikalai, далее следует код
Java
1
2
GoldNews2.setText("" +  proc1);
                        break;
если randomproc имеет положительное число, то все прекрасно отображается. Я через нее прогонял все переменные.
0
Mikalai
262 / 238 / 95
Регистрация: 11.01.2015
Сообщений: 666
22.08.2015, 19:54 #4
зачем там ещё break? покажи весь код.
0
bako-95
9 / 9 / 4
Регистрация: 27.04.2015
Сообщений: 112
22.08.2015, 20:02  [ТС] #5
Вот код. Рандом пока остановил чтобы только 14-й срабатывал
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
 void GoldNews0(){
                {Random randsok = new Random();
                int randomSok = 14;//randsok.nextInt(15);
                Random randproc = new Random();
                int randomproc = randproc.nextInt(101)-50;
            switch (randomSok){
                
                case 14:{
                    if (randomproc<0) {GoldNews1.setText("Добыча золото в Россий " + randomproc + "%" );} else {
                        GoldNews1.setText("Добыча золото в Россий + " + randomproc + "%" );
                        sPref = getSharedPreferences("GLOBAL_MASS", MODE_MULTI_PROCESS);
                        String savedText = sPref.getString(GLOBAL_MASS, "");
 
 
                        double proc3 = Double.valueOf(savedText);
                        int proc1 = (randomproc);
                        double proc2 =  (1.9*0.01)*proc1;
 
                        double proc4 = proc3+(proc3*proc2);
                        String proc5 = String.valueOf(proc4);
                        sPref = getSharedPreferences("GLOBAL_MASS", MODE_MULTI_PROCESS);
                        SharedPreferences.Editor ed = sPref.edit();
                        ed.putString(GLOBAL_MASS, proc5);
                        ed.commit();
                        GoldNews2.setText("" +  proc1);
                        break;
                    }
                }
            }
Согласен что код ужасен, еще только учусь

Добавлено через 3 минуты
Mikalai, могу попробовать весь код отправить. Около 5-6 сотен строк
0
Mikalai
262 / 238 / 95
Регистрация: 11.01.2015
Сообщений: 666
22.08.2015, 20:09 #6
после инициализации этой переменной поставь вывод в лог
Java
1
Log.d("myLog", "proc1 = " + proc1);
смотри логи по тегу "myLog". Думаю она нормально инициализируется.
0
bako-95
9 / 9 / 4
Регистрация: 27.04.2015
Сообщений: 112
22.08.2015, 20:40  [ТС] #7
Mikalai,
Ошибка была в моей логике
Строка
Java
1
if (randomproc<0) {GoldNews1.setText("Добыча золото в Россий " + randomproc + "%" );} else {
уже говорит что при отрицательном значений сторона елсе не срабатывает
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2015, 20:40
Привет! Вот еще темы с ответами:

Написать оператор присваивания, в результате которого логическая переменная t получает значение false, если выполняется указанное условие: числа x, y - Turbo Pascal
Написать оператор присваивания, в результате которого логическая переменная t получает значение false, если выполняется указанное условие:...

Написать программу, в результате выполнения которой булевская переменная t получает значение TRUE, если выполняется заданное условие, и FALSE в против - Pascal ABC
Введенное число является полным квадратом;??? (Написать программу, в результате выполнения которой булевская переменная t получает...

Если переменная x после цикла получает значение 3 и если ее вывести заданным образом - C (СИ)
Если переменная x после цикла получает значение 3 и если ее вывести следующим образом: printf(&quot;%d%d&quot;, ++x, ++x); то на екране будет &quot;54&quot;, а...

Какое значение примет переменная после выполнения фрагмента алгоритма, если переменная а имела значение 'ИНФОРМАТИКА' - Turbo Pascal
Имеется фрагмент алгоритма, записанный на алгоритмическом языке: m := 10 b := Извлечь(а, m) нц для k от 4 до 5 с := Извлечь(а,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru