gpt4 book ai didi

java - android EditText计算错误结果

转载 作者:行者123 更新时间:2023-12-01 18:13:04 24 4
gpt4 key购买 nike

我试图制作一个简单的应用程序,在摄氏度和华氏度之间进行转换:

我写了两个EditText,一个用于输入,另一个用于输出,还有两个按钮(toCtoF)。

代码如下:

public class MainActivity extends ActionBarActivity {

private EditText EditText_input;
private EditText EditText_output;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

EditText_input = (EditText) findViewById(R.id.input);
EditText_output = (EditText) findViewById(R.id.output);

Button toC = (Button) findViewById(R.id.c);
toC.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String inputS = EditText_input.getText().toString();
double inputD = Double.parseDouble(inputS);
double outputD = (5/9) * (inputD-32);
String outputS = String.valueOf(outputD);

//Toast.makeText(MainActivity.this,String.valueOf(outputD),Toast.LENGTH_LONG).show();
EditText_output.setText(outputS, TextView.BufferType.EDITABLE);
}
});

Button toF = (Button) findViewById(R.id.f);
toF.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
String inputS = EditText_input.getText().toString();
double inputD = Double.parseDouble(inputS);
double outputD = (9/5) * inputD + 32;
String outputS = String.valueOf(outputD);

EditText_output.setText(outputS, TextView.BufferType.EDITABLE);
}
});

}

点击按钮toC后,总是产生0.0,点击按钮toF会产生错误的结果。我将 EditTextinputType 设置为 numerdecimal,我尝试了数字,但仍然不起作用。

我检查了问题出在 outputD 上,但我不知道为什么 outputD 无法得到正确的结果。

有人可以帮助我吗?

最佳答案

当您计算 double outputD = (5/9) * (inputD-32); 时,编译器假定 59int,因此 5/9 为零。如果您希望编译器将数字视为 double ,则应编写double outputD = (5.0/9.0) * (inputD-32);。这同样适用于第二次转换 - double outputD = (9/5) * inputD + 32;

关于java - android EditText计算错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31407289/

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