如何获得此代码的十进制答案?

时间:2019-01-27 03:26:14

标签: java android

android:inputType="numberDecimal" = Ok ... 问题是我无法得到答案,带有小数的应用程序总是崩溃。 我想做的是我要查找输入的三个数字中的最高数字。

if (one.getText().toString().length() == 0.0) {
        one.setError("Required!");
    } else if (two.getText().toString().length() == 0.0) {
        two.setError("Required!");
    } else if (three.getText().toString().length() == 0.0) {
        three.setError("Required!");
    } else {
        int num1 = Integer.parseInt(one.getText().toString());
        int num2 = Integer.parseInt(two.getText().toString());
        int num3 = Integer.parseInt(three.getText().toString());
        if (num1 >= num2 && num1 >= num3) {
            output.setText("" + num1);
        } else if (num2 >= num1 && num2 >= num3) {
            output.setText("" + num2);
        } else
            output.setText("" + num3);
    }
}

2 个答案:

答案 0 :(得分:-1)

欢迎来到Stack Exchange ..!

首先,.length()返回一个整数。因此,只需使用== 0而不是== 0.0

我建议不要将字符串与0进行比较,而应将长度与null进行比较。使用editText.getString().equals(null)获取truefalse

然后,Integer.parseInt()返回一个整数和非十进制值。因此,使用Double.parseDouble()获得类型为 Double

的返回值

Integer.parseInt()方法主要是导致错误的原因,因为方法仅查找字符串中的整数,并找到一个.字符,感到困惑..!

请记住,在布局的XML文件的EditText下,您必须像这样添加inputType属性:

android:inputType="numberDecimal"

此属性告诉目标设备上的键盘输入是十进制数字。

希望这行得通..!

SDA

答案 1 :(得分:-2)

String类的

length()方法返回int (字符数怎么可以是小数??)

我猜您正在尝试编写代码以比较3个数字以找到最大的数字。您正在尝试检查是否提供了3个输入。

如果是这种情况,则只需检查args.length()= 3(或> 2并接受前3个输入)。然后尝试将其转换为int / float / double进行比较。

如果输入为小数,则使用Double.parseDouble()或Float.parseFloat()。