Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
bako-95
9 / 9 / 4
Регистрация: 27.04.2015
Сообщений: 112
#1

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

22.08.2015, 19:44. Просмотров 286. Ответов 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
Ответы с готовыми решениями:

Отрицательное значение id в SQLite
Добавляю запись в БД ContentValues cv = new ContentValues(); db =...

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

TMemIniFile переменная получает значение NULL
Здрасте, нужна ваша помощь. Возникла ошибка, которую я очень долго не могу...

Переменная в результате выполнения замыкания получает неверное значение
int position = new int; Task tsk = new Task; for...

Переменная не получает значение элемента справочника или как правильно инициализировать переменную
доброго времени суток. форумчане! От непонятки решил обратиться к Вам. Вот...

6
Mikalai
264 / 240 / 95
Регистрация: 11.01.2015
Сообщений: 668
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
264 / 240 / 95
Регистрация: 11.01.2015
Сообщений: 668
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
264 / 240 / 95
Регистрация: 11.01.2015
Сообщений: 668
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
22.08.2015, 20:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2015, 20:40

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

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

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


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

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

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