さて、私の最初の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());
}
}
});