0

さて、私の最初のAndroidアプリをデバッグしていて、プログラムに問題があります...私の計算機は合計、減算、乗算、除算のみです...そして最後の操作は私の問題です...私の電話ですが、たとえば、5 を 3 で割ると、答えは浮動小数点数になり、アプリがクラッシュします。5.0 と 3.0 を使用している場合にのみ機能します。

とにかくintをfloatに変換し、常にfloatに答える方法はありますか?

これまでのところ、これは私がすべての操作で得たものです...

try {
                firstNum = new BigDecimal(firstInput.getText().toString());
                firstFloat = firstNum.floatValue();
            } catch (NumberFormatException e) {
                firstNum = null;
            }

            try {
                secondNum = new BigDecimal(secondInput.getText().toString());
                secondFloat = secondNum.floatValue();
            } catch (NumberFormatException e) {
                secondNum = null;
            }

「firstFloat = firstNum.floatValue();」および「secondFloat = firstNum.floatValue();」フォーラムで変換方法を見てきました... すべてがうまくいくまで...

if (firstNum == null || secondNum == null) {
                Toast.makeText(getApplicationContext(), "Insira Valores!",
                        Toast.LENGTH_SHORT).show();
            } else {
                result.setText(firstNum.add(secondNum).toString());
            }
        }
    });

「else」を入力した後、.0 を使用しない限り、このように入力を float として合計しません...「firstFloat」と「secondFloat」を使用してすべての操作を行う方法はありますか?

分割:

div.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            try {
                firstNum = new BigDecimal(firstInput.getText().toString());
            } catch (NumberFormatException e) {
                firstNum = null;
            }

            try {
                secondNum = new BigDecimal(secondInput.getText().toString());
            } catch (NumberFormatException e) {
                secondNum = null;
            }

            if (firstNum == null || secondNum == null) {
                Toast.makeText(getApplicationContext(), "Insira Valores!",
                        Toast.LENGTH_SHORT).show();
            } else {
                BigDecimal div = firstNum.divide(secondNum).setScale(2,
                        BigDecimal.ROUND_HALF_EVEN);
                result.setText(div.toString());

            }
        }
    });
4

1 に答える 1