我正在制作一个计算器,在尝试制作平方根函数时,它输出你输入的数字,而不是平方根。这是适用于平方根函数的代码。
SquareRoot = (Button)findViewById(R.id.SquareRoot);
SquareRoot.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
x = TextBox.getText();
xconv = Double.parseDouble(x.toString());
Math.sqrt(xconv);
answer = Double.toString(xconv);
TextBox.setText(answer);
}});
只是给出一些关于此的信息,x是CharSequence,xconv是x转换为double,而answer是字符串值。感谢。
答案 0 :(得分:13)
这是因为Math.sqrt 返回 sqrt,它不会修改传入的值。
xconv = Math.sqrt(xconv);
是你想要的。
答案 1 :(得分:5)
实际问题是你只是保留结果而不存储任何变量。
只需将square root
结果发送至xconv
,然后即可查看结果。
用我的代码替换您的代码
SquareRoot = (Button)findViewById(R.id.SquareRoot);
SquareRoot.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
x = TextBox.getText();
xconv = Double.parseDouble(x.toString());
xconv = Math.sqrt(xconv);//======> you are not initalize the answer to a variable here
answer = Double.toString(xconv);
TextBox.setText(answer);
}});
答案 2 :(得分:3)
double squareRoot = Math.sqrt(xconv);
答案 3 :(得分:2)
您没有存储Math.sqrt的值。变量未更新,但返回结果。做类似的事情:
xconv = Math.sqrt(xconv);
答案 4 :(得分:0)
x=Double.parseDouble(edtchar.getText().toString());
ans.setText(Double.toString(Math.sqrt(x)));
将x视为Double,将ans视为textview。