Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 29.07.2015
Сообщений: 22
1

Калькулятор по формуле

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

Author24 — интернет-сервис помощи студентам
При вводе простых чисел, все прекрасно считает, но при вводе десятичных пишет всегда 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2015, 16:42
Ответы с готовыми решениями:

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

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

Как преобразовать обычный калькулятор в калькулятор использующий класс стек?
#include &lt;iostream&gt; int main(){ int a = 0; int b = 0; char operation; ...

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

28
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
29.07.2015, 17:28 2
Для начала начни называть переменные с маленьких букв - text, text1...
А если по делу, то парси не Integer, а Double
1
0 / 0 / 0
Регистрация: 29.07.2015
Сообщений: 22
29.07.2015, 17:35  [ТС] 3
Спасибо, а можешь подсказать как сделать так, чтобы текст в конце на русском писался?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
29.07.2015, 17:39 4
Цитата Сообщение от Mrsuper Посмотреть сообщение
При вводе простых чисел, все прекрасно считает, но при вводе десятичных пишет всегда 0.0. Что посоветуете?
А простые числа в какой системе вводятся?
0
393 / 338 / 83
Регистрация: 17.10.2014
Сообщений: 1,007
29.07.2015, 17:57 5
Цитата Сообщение от Mrsuper Посмотреть сообщение
а можешь подсказать как сделать так, чтобы текст в конце на русском писался?
не уж то Вы про это:
Java
1
 Text.setText("kg = "+d);
если да, то как бы Вас не шокировать))
Java
1
 Text.setText("кг = "+d);
0
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
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
30.07.2015, 09:52 7
Цитата Сообщение от Mrsuper Посмотреть сообщение
Только в данном случае кг будет писаться странными символами типа: вопросы в ромбе
открыть файл с этим классом и посмотреть в нижний правый угол IDE - там наверняка будет кодировка, не UTF-8
если да, то надо выставить UTF-8
1
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.07.2015, 12:03 8
Так с какой же системой калькулятор работал то?

Добавлено через 1 час 51 минуту
Цитата Сообщение от Mikalai Посмотреть сообщение
Для начала начни называть переменные с маленьких букв - text, text1...
А если по делу, то парси не Integer, а Double
Как это поможет десятичной системе? ТС не хочет называть систему, но предположим восьмеричная. Вводим 15 восьмеричное, всё эйси. Потом 14 десятичное вводим не как 16 восьмеричное, а как 14 десятичное, получается 0.0. Каким образом проблема решится с помощью double?
0
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
30.07.2015, 13:17 9
taras atavin, интересные мысли. Но!!!...
Не стоит искать черную кошку в темной комнате ночью. Особенно, если ее там нет. (с)Конфуций
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.07.2015, 13:32 10
Не понял.
0
150 / 137 / 35
Регистрация: 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
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
31.07.2015, 07:20 12
Bend3r, как это поможет поддерживать десятичную систему счисления?
0
393 / 338 / 83
Регистрация: 17.10.2014
Сообщений: 1,007
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
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
31.07.2015, 11:31 14
Почему? Функция parseInt не знает, что ты только простые числа вводишь в какой то другой системе, а составные в десятичной. И если ввести 15, она не поймёт, когда это 15 восьмеричное = 13 десятичное, а когда это 15 десятичное. И при вводе 25 она не поймёт, когда это 25 шестнадцатеричное = 37 десятичное, а когда это 25 десятичное. При вводе 111 она не поймёт, когда это 111 двоичное = 7 десятичное, а когда это 111 десятичное.
0
393 / 338 / 83
Регистрация: 17.10.2014
Сообщений: 1,007
31.07.2015, 11:38 15
taras atavin, имхо, а при чем тут системы счисления? ТСу лишь бы в десятичной заработало да и ладно))
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
31.07.2015, 11:40 16
А что у него десятичное? Система координат? Не смешно. Операционная система? Тоже.
0
393 / 338 / 83
Регистрация: 17.10.2014
Сообщений: 1,007
31.07.2015, 11:57 17
Цитата Сообщение от taras atavin Посмотреть сообщение
А что у него десятичное?
вангую что ТС имел ввиду числа с дробной частью
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
31.07.2015, 13:41 18
Цитата Сообщение от androbro Посмотреть сообщение
вангую что ТС имел ввиду числа с дробной частью
Простыми не являются не только дроби, а десятичными могут быть даже простые.
0
393 / 338 / 83
Регистрация: 17.10.2014
Сообщений: 1,007
31.07.2015, 13:57 19
Цитата Сообщение от taras atavin Посмотреть сообщение
Простыми не являются не только дроби, а десятичными могут быть даже простые.
ну Вы прям поражаете своими математическими познаниями
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
31.07.2015, 15:08 20
Для программиста не знать, что такое простое, составное и десятичное число - всё равно, что разработчику специальной теории относительности не знать, что оказывается есть свет и силы и думать, что глаза чем то ощупывают предметы, а те движутся, как им хочется. Он уже за программирование взялся и должен знать, как называются числа.
0
31.07.2015, 15:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2015, 15:08
Помогаю со студенческими работами здесь

калькулятор
Здраствуйте! Очень нуждаюсь в Вашей помочи Мне надо написать програму которая бы считала выражение...

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

Калькулятор
Вообщем, задали сделать проект, я выбрал калькулятор, что-то написал, поправьте что не правильно....

Калькулятор
Калькулятор. Написать программу, в которой вводятся два операнда Х и Y и знак операции (+, -, /,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru