gpt4 book ai didi

除以 0 时的 Android 计算器错误消息

转载 作者:行者123 更新时间:2023-12-03 08:48:38 26 4
gpt4 key购买 nike

我是 Android Studio 的新手,我正在开发一个计算器应用程序。现在,当我除以零时,自然会收到错误消息“Infinity”,但如果我想将其更改为“不能除以零”,我该怎么做呢?

enter image description here

  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 Divisionpage extends AppCompatActivity implements View.OnClickListener {
private Button btnDiv;
private TextView AnswDiv;
private EditText Divt1, Divt2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_divisionssida);
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() {
btnDiv = (Button)findViewById(R.id.btnDiv);
AnswDiv = (TextView)findViewById(R.id.AnswDiv);
Divt1 = (EditText)findViewById(R.id.Divtal1);
Divt2 = (EditText)findViewById(R.id.Divtal2);
btnDiv.setOnClickListener(this);
}

@Override
public void onClick(View v) {
String num7 = Divt1.getText().toString();
String num8 = Divt2.getText().toString();
switch (v.getId()){
case R.id.btnDiv:
try {
float division = Float.parseFloat(num7) / Float.parseFloat(num8);
AnswDiv.setText(String.valueOf(division));
}catch (Exception e) {
AnswDiv.setText("Could not divide!");
}
break;
}
}
}

如您所见,我 try catch 异常以显示错误消息,但失败了。你有什么建议?

最佳答案

那么你实际上可以检查 num8 值,如果它的 0 设置正确的消息。

 @Override
public void onClick(View v) {
String num7 = Divt1.getText().toString();
String num8 = Divt2.getText().toString();
switch (v.getId()){
case R.id.btnDiv:
try {
final float denominator = Float.parseFloat(num8);
if(denominator == 0){
AnswDiv.setText("Can't divide by zero");
return;
}
float division = Float.parseFloat(num7) / Float.parseFloat(num8);
AnswDiv.setText(String.valueOf(division));
}catch (Exception e) {
AnswDiv.setText("Could not divide!");
}
break;
}
}

您可以进一步改善异常处理的用户体验,例如:
除非在 edittext MIME 中受到限制,否则用户可能会引入非数字字符。尝试解析所述字符将抛出 NumberFormatException ,这将被您的异常子句捕获并设置您的消息。这虽然没有错,但可以改进,通知用户只有数字字符有效。
catch (NumberFormatException ex){
AnswDiv.setText("Only numbers allowed!");
}

关于除以 0 时的 Android 计算器错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47521763/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com