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

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

Войти
Регистрация
Восстановить пароль
 
 
Mrsuper
0 / 0 / 0
Регистрация: 29.07.2015
Сообщений: 22
#1

Калькулятор по формуле - Программирование Android

29.07.2015, 16:42. Просмотров 914. Ответов 28
Метки нет (Все метки)

При вводе простых чисел, все прекрасно считает, но при вводе десятичных пишет всегда 0.0. Что посоветуете?
З.Ы. как лучше сделать чтобы был выпадающий список с выбором.
Вот код
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
package com.example.andreybib.myapplication;
 
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
 
public class MainActivity extends ActionBarActivity {
 
    double a, b, c, d,e,f,g;
    EditText Text1, Text2, Text3;
    TextView Text;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setlocale(0, "");
 
        Text = (TextView) findViewById(R.id.text);
        Text1 = (EditText) findViewById(R.id.EditText01);
        Text2 = (EditText) findViewById(R.id.EditText02);
        Text3 = (EditText) findViewById(R.id.EditText03);
 
        final Button button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
 
                try {
                    a = Integer.parseInt(Text1.getText().toString());
                    b = Integer.parseInt(Text2.getText().toString());
                    c = Integer.parseInt(Text3.getText().toString());
 
                } catch (NumberFormatException e) {
                    a = 0;
                    b = 0;
                    c = 0;
                }
                e=0.001*a;
                f=0.001*b;
                g=3.14*c;
 
                d = e*f*g * 7650;
                Text.setText("kg = "+d);
            }
 
 
        });
 
    }
 
    private void setlocale(int i, String s) {
    }
}
XML
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
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
 
    <EditText
        android:id="@+id/EditText01"
        android:layout_width="fill_parent"
        android:hint="Введите диаметр в мм"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:maxLength="10" />
 
    <EditText
        android:id="@+id/EditText02"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:hint="Введите стенку в мм "
        android:maxLength="10"
        android:layout_marginTop="15dp"
        android:layout_below="@+id/EditText01"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
 
    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="="
        android:textSize="30sp"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
 
    <TextView
        android:id="@+id/text"
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:text=""
        android:layout_below="@+id/button1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="15dp" />
 
    <EditText
        android:id="@+id/EditText03"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="Введите длину в м"
        android:inputType="numberDecimal"
        android:maxLength="10"
        android:layout_marginTop="15dp"
        android:layout_below="@+id/EditText02"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"  />
 
 
</RelativeLayout>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2015, 16:42     Калькулятор по формуле
Посмотрите здесь:

Калькулятор - Программирование Android
делаю калькулятор на основе чужого, появились такие проблемы: 1. не работает с отрицательными числами 2. не работает операция сложения ...

Калькулятор - Программирование Android
Всем привет. Вобщем срочно нужно написать простое приложения для андроида, за 4 дня Я выбрал калькулятор. Не знаю явы. Но есть желание. Что...

Калькулятор на андроиде - Программирование Android
Пытался программно накидать кнопок чтобы калькулятор получился,но в итоге ничего не работает,в логе какие то непонятные ошибки,подскажите...

Калькулятор на Android - Программирование Android
Дело вот в чем, создается калькулятор, все прекрасно, но не получается сделать так что бы он считал не одно действие а два и больше...

Калькулятор на Android - Программирование Android
Здравствуйте. Есть edit text, в котором все вычисления, затем Textview в котором ответ выводится, затем кнопки(+,-,sin,0-9) Во многих...

Калькулятор для кассира - Программирование Android
Добрый день. Возникла проблема на работе с подсчетом средств на конец дня. И подумал обратится за помощью к программистам. Суть дела в чем,...

Android, простенький калькулятор - Программирование Android
Добрый день! Пишу на андроиде только 2 часа, по-этому ещё многое не понятно. В общем задача проста - написать простенький калькулятор....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
29.07.2015, 17:28     Калькулятор по формуле #2
Для начала начни называть переменные с маленьких букв - text, text1...
А если по делу, то парси не Integer, а Double
Mrsuper
0 / 0 / 0
Регистрация: 29.07.2015
Сообщений: 22
29.07.2015, 17:35  [ТС]     Калькулятор по формуле #3
Спасибо, а можешь подсказать как сделать так, чтобы текст в конце на русском писался?
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.07.2015, 17:39     Калькулятор по формуле #4
Цитата Сообщение от Mrsuper Посмотреть сообщение
При вводе простых чисел, все прекрасно считает, но при вводе десятичных пишет всегда 0.0. Что посоветуете?
А простые числа в какой системе вводятся?
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
29.07.2015, 17:57     Калькулятор по формуле #5
Цитата Сообщение от Mrsuper Посмотреть сообщение
а можешь подсказать как сделать так, чтобы текст в конце на русском писался?
не уж то Вы про это:
Java
1
 Text.setText("kg = "+d);
если да, то как бы Вас не шокировать))
Java
1
 Text.setText("кг = "+d);
Mrsuper
0 / 0 / 0
Регистрация: 29.07.2015
Сообщений: 22
30.07.2015, 09:44  [ТС]     Калькулятор по формуле #6
Цитата Сообщение от androbro Посмотреть сообщение
не уж то Вы про это:
Java
1
 Text.setText("kg = "+d);
если да, то как бы Вас не шокировать))
Java
1
 Text.setText("кг = "+d);
Только в данном случае кг будет писаться странными символами типа: вопросы в ромбе
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
30.07.2015, 09:52     Калькулятор по формуле #7
Цитата Сообщение от Mrsuper Посмотреть сообщение
Только в данном случае кг будет писаться странными символами типа: вопросы в ромбе
открыть файл с этим классом и посмотреть в нижний правый угол IDE - там наверняка будет кодировка, не UTF-8
если да, то надо выставить UTF-8
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
30.07.2015, 12:03     Калькулятор по формуле #8
Так с какой же системой калькулятор работал то?

Добавлено через 1 час 51 минуту
Цитата Сообщение от Mikalai Посмотреть сообщение
Для начала начни называть переменные с маленьких букв - text, text1...
А если по делу, то парси не Integer, а Double
Как это поможет десятичной системе? ТС не хочет называть систему, но предположим восьмеричная. Вводим 15 восьмеричное, всё эйси. Потом 14 десятичное вводим не как 16 восьмеричное, а как 14 десятичное, получается 0.0. Каким образом проблема решится с помощью double?
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
30.07.2015, 13:17     Калькулятор по формуле #9
taras atavin, интересные мысли. Но!!!...
Не стоит искать черную кошку в темной комнате ночью. Особенно, если ее там нет. (с)Конфуций
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
30.07.2015, 13:32     Калькулятор по формуле #10
Не понял.
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
30.07.2015, 21:50     Калькулятор по формуле #11
Цитата Сообщение от Mrsuper Посмотреть сообщение
Java
1
2
3
a = Integer.parseInt(Text1.getText().toString());
b = Integer.parseInt(Text2.getText().toString());
c = Integer.parseInt(Text3.getText().toString());
Замените на:
Java
1
2
3
a = Double.parseInt(Text1.getText().toString());
b = Double.parseInt(Text2.getText().toString());
c = Double.parseInt(Text3.getText().toString());
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.07.2015, 07:20     Калькулятор по формуле #12
Bend3r, как это поможет поддерживать десятичную систему счисления?
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
31.07.2015, 09:05     Калькулятор по формуле #13
Цитата Сообщение от Mrsuper Посмотреть сообщение
При вводе простых чисел, все прекрасно считает, но при вводе десятичных пишет всегда 0.0.
все правильно, так как при попытке спарсить
Java
1
a = Integer.parseInt(Text1.getText().toString());
выкидывается NumberFormatException, Вы его ловите catchэм где все переменные обнуляются.
А как известно любое число умноженное на 0 дает 0( в нашем случае 0.0 т.к. double)
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.07.2015, 11:31     Калькулятор по формуле #14
Почему? Функция parseInt не знает, что ты только простые числа вводишь в какой то другой системе, а составные в десятичной. И если ввести 15, она не поймёт, когда это 15 восьмеричное = 13 десятичное, а когда это 15 десятичное. И при вводе 25 она не поймёт, когда это 25 шестнадцатеричное = 37 десятичное, а когда это 25 десятичное. При вводе 111 она не поймёт, когда это 111 двоичное = 7 десятичное, а когда это 111 десятичное.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
31.07.2015, 11:38     Калькулятор по формуле #15
taras atavin, имхо, а при чем тут системы счисления? ТСу лишь бы в десятичной заработало да и ладно))
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.07.2015, 11:40     Калькулятор по формуле #16
А что у него десятичное? Система координат? Не смешно. Операционная система? Тоже.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
31.07.2015, 11:57     Калькулятор по формуле #17
Цитата Сообщение от taras atavin Посмотреть сообщение
А что у него десятичное?
вангую что ТС имел ввиду числа с дробной частью
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.07.2015, 13:41     Калькулятор по формуле #18
Цитата Сообщение от androbro Посмотреть сообщение
вангую что ТС имел ввиду числа с дробной частью
Простыми не являются не только дроби, а десятичными могут быть даже простые.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 836
31.07.2015, 13:57     Калькулятор по формуле #19
Цитата Сообщение от taras atavin Посмотреть сообщение
Простыми не являются не только дроби, а десятичными могут быть даже простые.
ну Вы прям поражаете своими математическими познаниями
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2015, 15:08     Калькулятор по формуле
Еще ссылки по теме:

Калькулятор двоичных чисел - Программирование Android
Нужно создать калькулятор для двоичных чисел.

Калькулятор и деление на ноль - Программирование Android
Нужно чтобы при делении на ноль выскакивала ошибка.Помогитееее

Подскажите. Калькулятор Android - Программирование Android
Ребята, помогите блдондинке, пожалуйста! В изучении java android я еще новичок. Выполняю лабораторную &quot;калькулятор на андроид&quot;: ...

Нужен инженерный калькулятор под Андроид - Программирование Android
Всем привет! Мне нужен инженерный кальк под Андроид, который бы делал следующие операции: все логические (И, НЕ, ХОР, ИЛИ, сдвиги...

Нужно соединит стандартный калькулятор возможно ли это - Программирование Android
скоро закончу свою первую андроид приложения нужен калькулятор могу ли я привязать стандартный калькулятор от сматрфона к приложению...


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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.07.2015, 15:08     Калькулятор по формуле #20
Для программиста не знать, что такое простое, составное и десятичное число - всё равно, что разработчику специальной теории относительности не знать, что оказывается есть свет и силы и думать, что глаза чем то ощупывают предметы, а те движутся, как им хочется. Он уже за программирование взялся и должен знать, как называются числа.
Yandex
Объявления
31.07.2015, 15:08     Калькулятор по формуле
Ответ Создать тему
Опции темы

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