【问题标题】:How do i make this calculator include being able to count decimals aswell?我如何使这个计算器包括能够计算小数?
【发布时间】:2017-11-27 20:12:25
【问题描述】:

我是 Android Studio 的新手,正在研究这个计算器。下图显示了可能的两个数字相加:

:

当我单击“第一个数字”行时,我可以选择的所有数字都会弹出。我可以计算两个整数,例如 4 + 6,但不能计算小数,例如 3.5 + 2.6。当我点击小数点时没有任何反应(。)我也不能使用(,)或(-)。

这是应用程序此页面上的代码:

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class AdditionPage extends AppCompatActivity implements View.OnClickListener {
private Button btnAdd;
private TextView AnswTxt;
private EditText FirstNumber, SecondNumber;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_additionssida);
        init();
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }
    private void init() {
        btnAdd = (Button)findViewById(R.id.btnAdd);
        FirstNumber = (EditText)findViewById(R.id.SubTal1);
        SecondNumber = (EditText) findViewById(R.id.SecondNumber);
        AnswTxt = (TextView)findViewById(R.id.AnswTxt);
        btnAdd.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        String num1 = FirstNumber.getText().toString();
        String num2 = SecondNumber.getText().toString();
        switch (v.getId()){
            case R.id.btnAdd:
                float addition = Float.parseFloat(num1) + Float.parseFloat(num2);
                AnswTxt.setText(String.valueOf(addition));
                break;


        }
    }
}

【问题讨论】:

  • 如果单击小数点后没有任何反应,您可能需要使用 EditText 查看布局的 xml 以了解 android:inputType 是什么
  • 双数 = Double.parseDouble(FirstNumber.getText().trim());

标签: android decimal


【解决方案1】:

很有可能您已将EditTexts 的inputType 属性设置为number。这将只允许将数字字符输入到编辑文本中。

这就是为什么当您按下键盘上的点按钮时没有任何反应的原因。

您可以尝试将其设置为numberDecimal。根据docs

可以与数字及其其他选项结合使用以允许使用小数(小数)。

【讨论】:

  • 是的,这成功了,谢谢! :) 在我接受你的回答并结束这个问题之前,如果我还想添加负数,例如 (-4) + (-2),该怎么办?
  • @Rengaw 你不能用numberDecimal 做负数吗?这很令人惊讶。如果是这种情况,那么您必须将输入类型设置回text,并通过代码检查它是否是有效数字。这里有很多关于如何检查字符串是否为有效数字的帖子。
  • @Rengaw 同样,您不会在回答问题后“关闭”问题。如果问题偏离主题或重复,则关闭问题
  • 不,它不适用于 numberDecimal。感谢您提供有关负数的提示,我会进一步研究。
猜你喜欢
  • 2017-03-29
  • 2018-09-29
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 2016-09-13
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多