2

私は電卓を作っていますが、平方根関数を作ろうとすると、平方根ではなく、入力した数値が出力されます。平方根関数に適用されるコードを次に示します。

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は文字列値です。ありがとう。

4

5 に答える 5

13

これは、Math.sqrtがsqrtを返すため、渡された値を変更しないためです。

xconv = Math.sqrt(xconv);

あなたが望むものです。

于 2012-07-31T14:59:48.977 に答える
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);

    }});
于 2012-07-31T15:01:52.613 に答える
3
double squareRoot = Math.sqrt(xconv);
于 2012-07-31T15:00:45.563 に答える
2

Math.sqrtの値を保存していません。変数は更新されませんが、代わりに結果が返されます。次のようなことをします:

xconv = Math.sqrt(xconv);
于 2012-07-31T15:00:43.863 に答える
0
x=Double.parseDouble(edtchar.getText().toString());
ans.setText(Double.toString(Math.sqrt(x)));

xをDouble、a​​nsをテキストビューと見なします。

于 2017-10-03T01:06:40.330 に答える