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

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

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

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

29.07.2015, 16:42. Просмотров 1007. Ответов 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>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2015, 16:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Калькулятор по формуле (Программирование Android):

Каждый из интегралов вычислить по формуле прямоугольника, по формуле трапеции и по формуле Симпсона - Turbo Pascal
Каждый из интегралов вычислить по формуле прямоугольника, по формуле трапеции и по формуле Симпсона. Интегралы: ∫xe2xdx, пределы...

По какой формуле нужно вычислять? по Бернулли или по формуле интеграла Лагранжа? - Теория вероятностей
Всхожесть семян некоторого растения составляет 70% .Какова вероятность того, что из 10 посеянных зерен сойдут не менее восемь.

Простой калькулятор и калькулятор с парсингом - C++
Ребят я совсем не давно только начал изучать сишку, решил написать простенький калькулятор который работает с 2 числами. Возник вопрос, как...

Калькулятор - C++
Вот сам калькулятор: #include&lt;conio.h&gt; #include&lt;locale.h&gt; #include&lt;stdio.h&gt; #define END '0' #define ERROR -1 #include&lt;stdlib.h&gt;...

Калькулятор - JavaScript
Дброго времени суток:) Помогите пожалуйста дополнить программу так, что бы в калькуляторе был запрет на цифру 0, т.е. программа...

Калькулятор - C++
Пишу калькулятор. Прошу помощи. Вот мой код #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;string.h&gt; #include &lt;cmath&gt; using...

28
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
29.07.2015, 17:28 #2
Для начала начни называть переменные с маленьких букв - text, text1...
А если по делу, то парси не Integer, а Double
1
Mrsuper
0 / 0 / 0
Регистрация: 29.07.2015
Сообщений: 22
29.07.2015, 17:35  [ТС] #3
Спасибо, а можешь подсказать как сделать так, чтобы текст в конце на русском писался?
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.07.2015, 17:39 #4
Цитата Сообщение от Mrsuper Посмотреть сообщение
При вводе простых чисел, все прекрасно считает, но при вводе десятичных пишет всегда 0.0. Что посоветуете?
А простые числа в какой системе вводятся?
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
29.07.2015, 17:57 #5
Цитата Сообщение от Mrsuper Посмотреть сообщение
а можешь подсказать как сделать так, чтобы текст в конце на русском писался?
не уж то Вы про это:
Java
1
 Text.setText("kg = "+d);
если да, то как бы Вас не шокировать))
Java
1
 Text.setText("кг = "+d);
0
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);
Только в данном случае кг будет писаться странными символами типа: вопросы в ромбе
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
30.07.2015, 09:52 #7
Цитата Сообщение от Mrsuper Посмотреть сообщение
Только в данном случае кг будет писаться странными символами типа: вопросы в ромбе
открыть файл с этим классом и посмотреть в нижний правый угол IDE - там наверняка будет кодировка, не UTF-8
если да, то надо выставить UTF-8
1
taras atavin
3570 / 1753 / 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?
0
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
30.07.2015, 13:17 #9
taras atavin, интересные мысли. Но!!!...
Не стоит искать черную кошку в темной комнате ночью. Особенно, если ее там нет. (с)Конфуций
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
30.07.2015, 13:32 #10
Не понял.
0
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());
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
31.07.2015, 07:20 #12
Bend3r, как это поможет поддерживать десятичную систему счисления?
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
31.07.2015, 09:05 #13
Цитата Сообщение от Mrsuper Посмотреть сообщение
При вводе простых чисел, все прекрасно считает, но при вводе десятичных пишет всегда 0.0.
все правильно, так как при попытке спарсить
Java
1
a = Integer.parseInt(Text1.getText().toString());
выкидывается NumberFormatException, Вы его ловите catchэм где все переменные обнуляются.
А как известно любое число умноженное на 0 дает 0( в нашем случае 0.0 т.к. double)
0
taras atavin
3570 / 1753 / 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 десятичное.
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
31.07.2015, 11:38 #15
taras atavin, имхо, а при чем тут системы счисления? ТСу лишь бы в десятичной заработало да и ладно))
0
31.07.2015, 11:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2015, 11:38
Привет! Вот еще темы с ответами:

Калькулятор - Java
Всем привет! Я делаю калькулятор в NetBeans IDE 1.8 по видеоуроку ndIIRMoyPPM Делаю все как в видеоуроке, но строчки...

Калькулятор - MS Access
Возможно ли где-то взять желательно бесплатно - готовую форму или элемент - калькулятор?

Калькулятор си - C (СИ)
можете помочь с этой программой. почему-то нормально не функционирует // 222.cpp : Defines the entry point for the console application. ...

Калькулятор - Delphi
Делаю калькулятор. Наткнулся на такую проблему: надо как-то сделать,, чтоб при нажатии клавиш на клаве нажимались соответствующие кнопки....


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

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

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