java - android计算器中的小数点

标签 java android string-comparison

我正在 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/

相关文章:

Java 创建浮雕(红/蓝图像)

java - Android项目连接WampServer的IP地址是多少?

java - 如何确定javafx的折线图在监视器上的峰值位置

java - 如何保存和加载Android图像

java - 从长字符串中提取文本并存储在变量中

android - RELEASE配置下MvvmCross MvxException "Failed to construct and initialize ViewModel"

android - 自顶向下布局

.net - StringComparison.Ordinal 是否与 InvariantCulture 相同,用于测试相等性?

c++ - C++中如何比较版本号

c# - 高效(?)字符串比较