Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
bako-95
9 / 9 / 4
Регистрация: 27.04.2015
Сообщений: 112
22.08.2015, 19:44     Переменная не получает отрицательное значение #1
Всем привет! Если эта тема уже была то извиняюсь, просто даже не знаю как её прогуглить гуглить

Имеется код
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, все ровно ничего не получается
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
248 / 224 / 91
Регистрация: 11.01.2015
Сообщений: 642
22.08.2015, 19:45     Переменная не получает отрицательное значение #2
bako-95, а как ты определяешь что она без значения остаётся? Выведи лог после её инициализации и посмотри.
bako-95
9 / 9 / 4
Регистрация: 27.04.2015
Сообщений: 112
22.08.2015, 19:52  [ТС]     Переменная не получает отрицательное значение #3
Mikalai, далее следует код
Java
1
2
GoldNews2.setText("" +  proc1);
                        break;
если randomproc имеет положительное число, то все прекрасно отображается. Я через нее прогонял все переменные.
Mikalai
248 / 224 / 91
Регистрация: 11.01.2015
Сообщений: 642
22.08.2015, 19:54     Переменная не получает отрицательное значение #4
зачем там ещё break? покажи весь код.
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 сотен строк
Mikalai
248 / 224 / 91
Регистрация: 11.01.2015
Сообщений: 642
22.08.2015, 20:09     Переменная не получает отрицательное значение #6
после инициализации этой переменной поставь вывод в лог
Java
1
Log.d("myLog", "proc1 = " + proc1);
смотри логи по тегу "myLog". Думаю она нормально инициализируется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2015, 20:40     Переменная не получает отрицательное значение
Еще ссылки по теме:

Переменная типа Uri Android
Нужен пример работы Socked клиента, который получает некую инфу от сервера Android
Глобальная переменная в Java Android
BroadcastReceiver + static переменная Android
Android Bitmap не получает цвета с экрана

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

Или воспользуйтесь поиском по форуму:
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 {
уже говорит что при отрицательном значений сторона елсе не срабатывает
Yandex
Объявления
22.08.2015, 20:40     Переменная не получает отрицательное значение
Ответ Создать тему
Опции темы

Текущее время: 21:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru