如何实现浮点数的加减乘除混合运算呢
时间: 2024-03-03 14:52:45 浏览: 16
实现浮点数的加减乘除混合运算,你可以在计算器应用中添加加、减、乘、除和等于等按钮,然后在处理用户输入时,你需要判断用户输入的运算符是加、减、乘、除中的哪一个,并根据运算符进行相应的计算。下面是一个简单的实现示例:
1. 在布局文件中添加加、减、乘、除和等于等按钮:
```xml
<Button
android:id="@+id/button_add"
android:text="+"
android:onClick="onOperatorClick" />
<Button
android:id="@+id/button_subtract"
android:text="-"
android:onClick="onOperatorClick" />
<Button
android:id="@+id/button_multiply"
android:text="*"
android:onClick="onOperatorClick" />
<Button
android:id="@+id/button_divide"
android:text="/"
android:onClick="onOperatorClick" />
<Button
android:id="@+id/button_equal"
android:text="="
android:onClick="onEqualClick" />
```
2. 在Activity中实现运算符按钮的点击事件:
```java
public void onOperatorClick(View view) {
// 将当前输入的数字作为左操作数
EditText editText = findViewById(R.id.editText);
String text = editText.getText().toString();
double leftOperand = Double.parseDouble(text);
// 将运算符保存起来
Button button = (Button) view;
String operator = button.getText().toString();
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("operator", operator);
editor.putFloat("leftOperand", (float) leftOperand);
editor.apply());
// 清空输入框
editText.setText("");
}
```
3. 在Activity中实现等于按钮的点击事件:
```java
public void onEqualClick(View view) {
// 获取保存的运算符和左操作数
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
String operator = preferences.getString("operator", "");
double leftOperand = preferences.getFloat("leftOperand", 0.0f);
// 获取当前输入的数字作为右操作数
EditText editText = findViewById(R.id.editText);
String text = editText.getText().toString();
double rightOperand = Double.parseDouble(text);
// 根据运算符进行计算
double result = 0.0;
switch (operator) {
case "+":
result = leftOperand + rightOperand;
break;
case "-":
result = leftOperand - rightOperand;
break;
case "*":
result = leftOperand * rightOperand;
break;
case "/":
result = leftOperand / rightOperand;
break;
}
// 显示计算结果
editText.setText(Double.toString(result));
}
```
注意:在进行浮点数运算时,由于浮点数的精度问题,可能会出现一些不准确的结果。可以使用BigDecimal类来解决这个问题。