在Android studio中制作一个没有优先级,输入多个零只显示一个的多运算计算器
时间: 2024-02-19 08:02:13 浏览: 71
好的,我理解您的问题了。下面是制作一个没有优先级,输入多个零只显示一个的多运算计算器的步骤:
1. 首先,在Android Studio中创建一个新项目,并在布局文件中添加一个TextView用于显示输入和计算结果,以及多个Button用于输入数字和运算符。
2. 在Activity中,定义一个字符串变量用于存储目前的输入,以及一个布尔变量用于标记是否已经输入过小数点。在每次用户点击数字或运算符Button时,将对应的字符添加到输入字符串中,并更新TextView上的显示内容。
3. 当用户点击小数点Button时,先检查是否已经输入过小数点,如果是,则不做任何操作,如果否,则在输入字符串中添加小数点,并将小数点标记设置为true。
4. 当用户点击运算符Button时,先将当前的输入字符串转换为数字,并根据当前的运算符和上一次输入的数字进行计算,最后将计算结果存储到输入字符串中,并清空标记小数点的变量。
5. 当用户点击等号Button时,执行最后一次运算,并将结果显示在TextView上。
6. 如果用户输入多个零,只显示一个零,可以在添加数字到输入字符串时,先判断输入的数字是否为零,如果是,则检查当前输入字符串的最后一个字符是否为零或小数点,如果是,则不做任何操作,否则将零添加到输入字符串中。
以上就是制作一个没有优先级,输入多个零只显示一个的多运算计算器的步骤。
相关问题
在android studio中制作一个没有优先级,运行结果保留两位小数的多位数相加减的计算器
以下是一个简单的 Android Studio 计算器代码,支持多位数相加减运算,没有优先级,运行结果保留两位小数:
1. 创建一个新的 Android Studio 项目,并在 `activity_main.xml` 中添加一个输入框、一个文本框和四个按钮,分别用于输入数字、显示结果和执行加减运算。
```xml
<EditText
android:id="@+id/etInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入数字" />
<TextView
android:id="@+id/tvResult"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="结果:0.00"
android:textAlignment="center"
android:textSize="24sp" />
<Button
android:id="@+id/btnAdd"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+" />
<Button
android:id="@+id/btnSubtract"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-" />
<Button
android:id="@+id/btnClear"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="清空" />
<Button
android:id="@+id/btnCalculate"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="计算" />
```
2. 在 `MainActivity.java` 中添加以下代码:
```java
public class MainActivity extends AppCompatActivity {
private EditText etInput;
private TextView tvResult;
private Button btnAdd, btnSubtract, btnClear, btnCalculate;
private double result = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etInput = findViewById(R.id.etInput);
tvResult = findViewById(R.id.tvResult);
btnAdd = findViewById(R.id.btnAdd);
btnSubtract = findViewById(R.id.btnSubtract);
btnClear = findViewById(R.id.btnClear);
btnCalculate = findViewById(R.id.btnCalculate);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
double num = Double.parseDouble(etInput.getText().toString());
result += num;
tvResult.setText(String.format("结果:%.2f", result));
etInput.setText("");
} catch (NumberFormatException e) {
Toast.makeText(MainActivity.this, "请输入有效数字", Toast.LENGTH_SHORT).show();
}
}
});
btnSubtract.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
double num = Double.parseDouble(etInput.getText().toString());
result -= num;
tvResult.setText(String.format("结果:%.2f", result));
etInput.setText("");
} catch (NumberFormatException e) {
Toast.makeText(MainActivity.this, "请输入有效数字", Toast.LENGTH_SHORT).show();
}
}
});
btnClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result = 0;
tvResult.setText("结果:0.00");
etInput.setText("");
}
});
btnCalculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
double num = Double.parseDouble(etInput.getText().toString());
result += num;
tvResult.setText(String.format("结果:%.2f", result));
etInput.setText("");
} catch (NumberFormatException e) {
Toast.makeText(MainActivity.this, "请输入有效数字", Toast.LENGTH_SHORT).show();
}
}
});
}
}
```
代码思路:
1. 在 `onCreate` 方法中,使用 `findViewById` 方法来获取输入框、文本框和四个按钮的实例。
2. 为加、减、清空和计算按钮分别添加点击事件监听器。
3. 在点击事件监听器中,使用 `Double.parseDouble` 方法将输入框中的字符串转换为 double 类型的数字,然后进行加减运算,并使用 `String.format` 方法将结果格式化成保留两位小数的字符串,最后显示在文本框中。
4. 如果输入的字符串无法转换为有效的数字,则弹出一个提示框。
在android studio中制作一个没有优先级,运行结果保留两位小数的多位数像加减的计算器
好的,我会尽力回答您的问题。首先,我们需要在Android Studio中创建一个新的项目。
接下来,我们需要设计UI界面。我们可以使用LinearLayout来放置我们的控件,例如TextView和Button。我们需要至少放置两个TextView控件,一个用于显示计算结果,另一个用于显示用户的输入。
在代码中,我们可以使用Java中的BigDecimal类来处理浮点数运算,以确保精度。我们可以在OnClick事件中添加操作符和数字按钮的逻辑来执行计算,最后将结果显示在结果TextView中。
下面是一个简单的示例代码,其中包括加、减、乘、除四种运算:
```
import java.math.BigDecimal;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView inputTextView, resultTextView;
private BigDecimal inputNumber, resultNumber;
private String operator = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inputTextView = findViewById(R.id.inputTextView);
resultTextView = findViewById(R.id.resultTextView);
findViewById(R.id.button0).setOnClickListener(this);
findViewById(R.id.button1).setOnClickListener(this);
findViewById(R.id.button2).setOnClickListener(this);
findViewById(R.id.button3).setOnClickListener(this);
findViewById(R.id.button4).setOnClickListener(this);
findViewById(R.id.button5).setOnClickListener(this);
findViewById(R.id.button6).setOnClickListener(this);
findViewById(R.id.button7).setOnClickListener(this);
findViewById(R.id.button8).setOnClickListener(this);
findViewById(R.id.button9).setOnClickListener(this);
findViewById(R.id.buttonAdd).setOnClickListener(this);
findViewById(R.id.buttonSubtract).setOnClickListener(this);
findViewById(R.id.buttonMultiply).setOnClickListener(this);
findViewById(R.id.buttonDivide).setOnClickListener(this);
findViewById(R.id.buttonEquals).setOnClickListener(this);
findViewById(R.id.buttonClear).setOnClickListener(this);
inputNumber = new BigDecimal("0");
resultNumber = new BigDecimal("0");
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.button0:
inputNumber = inputNumber.multiply(new BigDecimal("10"));
updateInputText("0");
break;
case R.id.button1:
inputNumber = inputNumber.multiply(new BigDecimal("10"));
inputNumber = inputNumber.add(new BigDecimal("1"));
updateInputText("1");
break;
case R.id.button2:
inputNumber = inputNumber.multiply(new BigDecimal("10"));
inputNumber = inputNumber.add(new BigDecimal("2"));
updateInputText("2");
break;
case R.id.button3:
inputNumber = inputNumber.multiply(new BigDecimal("10"));
inputNumber = inputNumber.add(new BigDecimal("3"));
updateInputText("3");
break;
case R.id.button4:
inputNumber = inputNumber.multiply(new BigDecimal("10"));
inputNumber = inputNumber.add(new BigDecimal("4"));
updateInputText("4");
break;
case R.id.button5:
inputNumber = inputNumber.multiply(new BigDecimal("10"));
inputNumber = inputNumber.add(new BigDecimal("5"));
updateInputText("5");
break;
case R.id.button6:
inputNumber = inputNumber.multiply(new BigDecimal("10"));
inputNumber = inputNumber.add(new BigDecimal("6"));
updateInputText("6");
break;
case R.id.button7:
inputNumber = inputNumber.multiply(new BigDecimal("10"));
inputNumber = inputNumber.add(new BigDecimal("7"));
updateInputText("7");
break;
case R.id.button8:
inputNumber = inputNumber.multiply(new BigDecimal("10"));
inputNumber = inputNumber.add(new BigDecimal("8"));
updateInputText("8");
break;
case R.id.button9:
inputNumber = inputNumber.multiply(new BigDecimal("10"));
inputNumber = inputNumber.add(new BigDecimal("9"));
updateInputText("9");
break;
case R.id.buttonAdd:
performOperation("+");
break;
case R.id.buttonSubtract:
performOperation("-");
break;
case R.id.buttonMultiply:
performOperation("*");
break;
case R.id.buttonDivide:
performOperation("/");
break;
case R.id.buttonEquals:
performOperation("=");
break;
case R.id.buttonClear:
inputNumber = new BigDecimal("0");
resultNumber = new BigDecimal("0");
inputTextView.setText("");
resultTextView.setText("");
break;
}
}
private void updateInputText(String text) {
inputTextView.setText(inputNumber.toString());
}
private void performOperation(String op) {
if (operator.equals("")) {
resultNumber = inputNumber;
} else {
switch (operator) {
case "+":
resultNumber = resultNumber.add(inputNumber);
break;
case "-":
resultNumber = resultNumber.subtract(inputNumber);
break;
case "*":
resultNumber = resultNumber.multiply(inputNumber);
break;
case "/":
resultNumber = resultNumber.divide(inputNumber, 2, BigDecimal.ROUND_HALF_UP);
break;
}
}
if (op.equals("=")) {
inputNumber = resultNumber;
operator = "";
} else {
inputNumber = new BigDecimal("0");
operator = op;
}
updateInputText("");
resultTextView.setText(resultNumber.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
}
}
```
希望这个简单的例子能够帮助您实现一个多位数加减运算的计算器。
阅读全文