好吧,我正在调试我的第一个 android 应用程序,但我的程序有问题……我的计算器只能求和、减法、乘法和除法……最后一个操作是我的问题……我使用 TextEdit 插入任何值我的手机,但是当我将 5 除以 3 时,例如,答案是浮点数,应用程序将崩溃。只有当我使用 5.0 和 3.0 时它才会起作用,
无论如何将整数转换为浮点数并总是回答浮点数?
到目前为止,这就是我每次手术都得到的……
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,否则它不会将我的输入作为浮点数相加......无论如何使用“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());
}
}
});