Почему два Doubles объединяются, а не добавляются ⇐ Android
-
Anonymous
Почему два Doubles объединяются, а не добавляются
Когда я пытаюсь добавить две переменные типа double, они объединяются, а не складываются вместе. что мне здесь не хватает, и переменные Strings, и переменные ответа являются переменными уровня класса, поэтому их можно изменить с помощью метода on create и различных методов математических операций. стоит ли мне что-то убрать из метода onCreate?
MainActivity.java
пакет com.hernandez.simplecalculator; импортировать android.os.Bundle; импортировать android.widget.Button; импортировать android.widget.RadioButton; импортировать android.widget.TextView; импортировать android.widget.Toast; импортировать androidx.appcompat.app.AppCompatActivity; публичный класс MainActivity расширяет AppCompatActivity { //цифры Строка num1 = «0»; Строка num2 = «0»; двойной ответ; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.activity_main); TextView text = findViewById(R.id.ответ); text.setText(""); //элементы управления RadioButton rbAdd = findViewById(R.id.radioButtonAdd); RadioButton rbSub = findViewById(R.id.radioButtonSubtract); RadioButton rbMult = findViewById(R.id.radioButtonMultiply); RadioButton rbDiv = findViewById(R.id.radioButtonDivide); Кнопка btnCalculate = findViewById(R.id.btnCalculate); //цифровые кнопки Кнопка btn1 = findViewById(R.id.button1); Кнопка btn2 = findViewById(R.id.button2); Кнопка btn3 = findViewById(R.id.button3); Кнопка btn4 = findViewById(R.id.button4); Кнопка btn5 = findViewById(R.id.button5); Кнопка btn6 = findViewById(R.id.button6); Кнопка btn7 = findViewById(R.id.button7); Кнопка btn8 = findViewById(R.id.button8); Кнопка btn9 = findViewById(R.id.button9); Кнопка btn0 = findViewById(R.id.button0); //функциональные кнопки rbAdd.setOnClickListener(view -> text.append(" + ")); rbSub.setOnClickListener(view -> text.append("- ")); rbMult.setOnClickListener(view -> text.append("x")); rbDiv.setOnClickListener(view -> text.append(" / ")); if(!rbAdd.isChecked() || !rbSub.isChecked() || !rbDiv.isChecked() || !rbMult.isChecked()) { //цифровые кнопки btn0.setOnClickListener(просмотр -> { text.append("0"); число1 += "0"; }); btn1.setOnClickListener(просмотр -> { text.append("1"); число1 += "1"; }); btn2.setOnClickListener(просмотр -> { text.append("2"); число1 += "2"; }); btn3.setOnClickListener(просмотр -> { text.append("3"); число1 += "3"; }); btn4.setOnClickListener(просмотр -> { text.append("4"); число1 += "4"; }); btn5.setOnClickListener(просмотр -> { text.append("5"); число1 += "5"; }); btn6.setOnClickListener(просмотр -> { text.append("6"); число1 += "6"; }); btn7.setOnClickListener(просмотр -> { text.append("7"); число1 += "7"; }); btn8.setOnClickListener(просмотр -> { text.append("8"); число1 += "8"; }); btn9.setOnClickListener(просмотр -> { text.append("9"); число1 += "9"; }); } иначе, если (rbAdd.isChecked() || rbSub.isChecked() || rbDiv.isChecked() || rbMult.isChecked()){ btn0.setOnClickListener(просмотр -> { text.append("0"); число2 += "0"; }); btn1.setOnClickListener(просмотр -> { text.append("1"); число2 += "1"; }); btn2.setOnClickListener(просмотр -> { text.append("2"); число2 += "2"; }); btn3.setOnClickListener(просмотр -> { text.append("3"); число2 += "3"; }); btn4.setOnClickListener(просмотр -> { text.append("4"); число2 += "4"; }); btn5.setOnClickListener(просмотр -> { text.append("5"); число2 += "5"; }); btn6.setOnClickListener(просмотр -> { text.append("6"); число2 += "6"; }); btn7.setOnClickListener(просмотр -> { text.append("7"); число2 += "7"; }); btn8.setOnClickListener(просмотр -> { text.append("8"); число2 += "8"; }); btn9.setOnClickListener(просмотр -> { text.append("9"); число2 += "9"; }); } btnCalculate.setOnClickListener(v -> { // какая кнопка отмечена? если (rbAdd.isChecked()) { сделатьДобавить(); } еще если (rbSub.isChecked()) { сделатьВычитание(); } иначе если (rbMult.isChecked()){ сделатьМультипли(); }иначе если(rbDiv.isChecked()){ сделатьРазделение(); } еще { Toast.makeText(MainActivity.this, «Пожалуйста, отметьте один вариант», Toast.LENGTH_LONG).show(); } text.setText(Double.toString(ответ)); }); } общественная недействительность doAdd() { пытаться{ двойной n1 = новый Double(num1).doubleValue(); двойной n2 = новый Double(num2).doubleValue(); ответ = (n1 + n2); } поймать (NumberFormatException е) { System.out.println(e.getMessage()); } } общественная недействительность doSubtract () { пытаться{ ответ = Double.parseDouble(num1) - Double.parseDouble(num2); } поймать (NumberFormatException е) { System.out.println(e.getMessage()); } } общественная недействительность doMultiply () { пытаться{ ответ = Double.parseDouble(num1) * Double.parseDouble(num2); } поймать (NumberFormatException е) { System.out.println(e.getMessage()); } } общественный недействительный doDivide () { пытаться { ответ = Double.parseDouble(num1) / Double.parseDouble(num2); } catch (NumberFormatException e) { System.out.println(e.getMessage()); } } } activity_main
Я пытался преобразовать String в double разными способами, но значения все равно объединялись, а не складывались.
вот результат уравнение сумма
Когда я пытаюсь добавить две переменные типа double, они объединяются, а не складываются вместе. что мне здесь не хватает, и переменные Strings, и переменные ответа являются переменными уровня класса, поэтому их можно изменить с помощью метода on create и различных методов математических операций. стоит ли мне что-то убрать из метода onCreate?
MainActivity.java
пакет com.hernandez.simplecalculator; импортировать android.os.Bundle; импортировать android.widget.Button; импортировать android.widget.RadioButton; импортировать android.widget.TextView; импортировать android.widget.Toast; импортировать androidx.appcompat.app.AppCompatActivity; публичный класс MainActivity расширяет AppCompatActivity { //цифры Строка num1 = «0»; Строка num2 = «0»; двойной ответ; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.activity_main); TextView text = findViewById(R.id.ответ); text.setText(""); //элементы управления RadioButton rbAdd = findViewById(R.id.radioButtonAdd); RadioButton rbSub = findViewById(R.id.radioButtonSubtract); RadioButton rbMult = findViewById(R.id.radioButtonMultiply); RadioButton rbDiv = findViewById(R.id.radioButtonDivide); Кнопка btnCalculate = findViewById(R.id.btnCalculate); //цифровые кнопки Кнопка btn1 = findViewById(R.id.button1); Кнопка btn2 = findViewById(R.id.button2); Кнопка btn3 = findViewById(R.id.button3); Кнопка btn4 = findViewById(R.id.button4); Кнопка btn5 = findViewById(R.id.button5); Кнопка btn6 = findViewById(R.id.button6); Кнопка btn7 = findViewById(R.id.button7); Кнопка btn8 = findViewById(R.id.button8); Кнопка btn9 = findViewById(R.id.button9); Кнопка btn0 = findViewById(R.id.button0); //функциональные кнопки rbAdd.setOnClickListener(view -> text.append(" + ")); rbSub.setOnClickListener(view -> text.append("- ")); rbMult.setOnClickListener(view -> text.append("x")); rbDiv.setOnClickListener(view -> text.append(" / ")); if(!rbAdd.isChecked() || !rbSub.isChecked() || !rbDiv.isChecked() || !rbMult.isChecked()) { //цифровые кнопки btn0.setOnClickListener(просмотр -> { text.append("0"); число1 += "0"; }); btn1.setOnClickListener(просмотр -> { text.append("1"); число1 += "1"; }); btn2.setOnClickListener(просмотр -> { text.append("2"); число1 += "2"; }); btn3.setOnClickListener(просмотр -> { text.append("3"); число1 += "3"; }); btn4.setOnClickListener(просмотр -> { text.append("4"); число1 += "4"; }); btn5.setOnClickListener(просмотр -> { text.append("5"); число1 += "5"; }); btn6.setOnClickListener(просмотр -> { text.append("6"); число1 += "6"; }); btn7.setOnClickListener(просмотр -> { text.append("7"); число1 += "7"; }); btn8.setOnClickListener(просмотр -> { text.append("8"); число1 += "8"; }); btn9.setOnClickListener(просмотр -> { text.append("9"); число1 += "9"; }); } иначе, если (rbAdd.isChecked() || rbSub.isChecked() || rbDiv.isChecked() || rbMult.isChecked()){ btn0.setOnClickListener(просмотр -> { text.append("0"); число2 += "0"; }); btn1.setOnClickListener(просмотр -> { text.append("1"); число2 += "1"; }); btn2.setOnClickListener(просмотр -> { text.append("2"); число2 += "2"; }); btn3.setOnClickListener(просмотр -> { text.append("3"); число2 += "3"; }); btn4.setOnClickListener(просмотр -> { text.append("4"); число2 += "4"; }); btn5.setOnClickListener(просмотр -> { text.append("5"); число2 += "5"; }); btn6.setOnClickListener(просмотр -> { text.append("6"); число2 += "6"; }); btn7.setOnClickListener(просмотр -> { text.append("7"); число2 += "7"; }); btn8.setOnClickListener(просмотр -> { text.append("8"); число2 += "8"; }); btn9.setOnClickListener(просмотр -> { text.append("9"); число2 += "9"; }); } btnCalculate.setOnClickListener(v -> { // какая кнопка отмечена? если (rbAdd.isChecked()) { сделатьДобавить(); } еще если (rbSub.isChecked()) { сделатьВычитание(); } иначе если (rbMult.isChecked()){ сделатьМультипли(); }иначе если(rbDiv.isChecked()){ сделатьРазделение(); } еще { Toast.makeText(MainActivity.this, «Пожалуйста, отметьте один вариант», Toast.LENGTH_LONG).show(); } text.setText(Double.toString(ответ)); }); } общественная недействительность doAdd() { пытаться{ двойной n1 = новый Double(num1).doubleValue(); двойной n2 = новый Double(num2).doubleValue(); ответ = (n1 + n2); } поймать (NumberFormatException е) { System.out.println(e.getMessage()); } } общественная недействительность doSubtract () { пытаться{ ответ = Double.parseDouble(num1) - Double.parseDouble(num2); } поймать (NumberFormatException е) { System.out.println(e.getMessage()); } } общественная недействительность doMultiply () { пытаться{ ответ = Double.parseDouble(num1) * Double.parseDouble(num2); } поймать (NumberFormatException е) { System.out.println(e.getMessage()); } } общественный недействительный doDivide () { пытаться { ответ = Double.parseDouble(num1) / Double.parseDouble(num2); } catch (NumberFormatException e) { System.out.println(e.getMessage()); } } } activity_main
Я пытался преобразовать String в double разными способами, но значения все равно объединялись, а не складывались.
вот результат уравнение сумма
Мобильная версия