我正在 Android 中创建一个计算器应用程序。问题是如何检查单个数值中是否存在两位小数。目前我的计算器允许诸如 1.2.3
这样的输入,这是非法的。如果使用了运算符,则它必须允许小数。例如,1.1+2.2
是合法的,但 1.1.1+2.2
则不合法。
这是我的小数处理代码:
public class TrialCalculator extends AppCompatActivity implements Button.OnClickListener {
Button btn1, btn2, btnBack, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0, btnPlus, btnMinus, btnMul, btnDiv, btnEquals, btnClear, btnDecimal, btnPercent;
EditText calcResult;
double number = 0;
private char opcode = '1';
private void handleDecimal() {
if (opcode == 0) clear();
if (calcResult.getText() == null) {
calcResult.setText("0.");
calcResult.setSelection(2);
} else {
String txt = calcResult.getText().toString();
if (txt.lastIndexOf(".")<txt.length()-1) {
calcResult.append(".");
}
}
}
}
我正在从 onClick
方法调用 buttonDot
。
最佳答案
一种解决方案是使用一个标记来跟踪小数:
class MyCalculator {
private hasDecimal = false;
// ...
}
当用户第一次输入小数时,将此标志设置为true
。然后检查标志以查看之前是否输入了小数。
当然,只有当您直接响应每个按键而不是在用户输入整个数字后从 EditText
获取整个输入时,这才有效。
关于java - android计算器中的小数点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41659012/