Java 计算器,打印小数

Java 计算器,打印小数,java,android,Java,Android,我正在使用android studio开发计算器。我真的很难让我的十进制按钮正常工作。我不知道如何让它在屏幕上打印一个小数。这是我下面的,不起作用 private void deciDisplay(int j) { str = "." + Integer.toString(j); num = Integer.valueOf(str).intValue(); disp.setText(str); } public void buttonDeci(View v) {

我正在使用android studio开发计算器。我真的很难让我的十进制按钮正常工作。我不知道如何让它在屏幕上打印一个小数。这是我下面的,不起作用

private void deciDisplay(int j) {
    str = "." + Integer.toString(j);
    num = Integer.valueOf(str).intValue();
    disp.setText(str);

}

public void buttonDeci(View v) {

    deciDisplay(((int) num));

}

正如Golem所说,您需要使用double或float,因为整数只有整数:

private void deciDisplay(int j) {
    str = "." + Integer.toString(j); //Or String.valueOf(j);
    num = Double.parseDouble(str);
    disp.setText(str);

}
编辑:

这可能会解决在TextView中添加点的实际问题:

public void buttonDeci(View v){
    num+=".";
    disp.setText(num);
}

假设num是一个字符串。如果不是,你需要一个索引来告诉你的计算器你现在落后于小数点。

你提供了什么输入?你期望什么样的产出?你得到什么输出?十进制数不是整数。您应该使用double或float。考虑到此输入
3
,因此输出将为
0.3
。这就是你的意思吗?这只是一个基本的计算器,输入是一个整数,在这种情况下,输出是一个双精度(即5.0)。当我测试这个时,它会强制关闭我的应用程序,所以我现在无法获得输出。如果我输入5,并点击十进制按钮。然后我应该能够输入另一个数字,得到类似于5.2的东西,就像傀儡说的,这对整数不起作用,因为这些只是整数。是的,我明白了,我做了改变。。但是当我尝试这个的时候。我按了一个数字,比如5,然后是十进制按钮,它给了我.5,然后它崩溃了。它不允许我输入下一个数字,正如我所说的,对于任何进一步的操作,您都需要将num设置为字符串(我猜它在代码中是一种数字,或者您不能像在代码示例中那样简单地将其转换为int),并在每次要在计算中使用它时使用parseDouble(),或者实现索引。对于您的崩溃问题,请发布您的LogCat输出和代码中导致应用程序崩溃的代码部分。您可以将int转换为float,而无需使用字符串。float floatNumber=(float)intNumber;我把它做成了一个字符串,这样人们可以很容易地随意添加新的数字。现在:
num=“5.”
,然后按6并转到
num+=“6”;显示设置文本(num)