2012-07-31 3 views
2

저는 계산기를 만들고 제곱근 함수를 만들려고 할 때 제곱근이 아닌 넣은 숫자를 출력합니다. 다음은 제곱근 함수에 적용되는 코드입니다. Math.Sqrt (x); 작동 안함?

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는 두 배로 변환하고, 대답은 문자열 값입니다. 감사.

+3

xconv ​​= Math.sqrt (xconv); – Shark

답변

13

Math.sqrt sqrt를 반환하기 때문에 전달 된 값이 수정되지 않기 때문입니다.

xconv = Math.sqrt(xconv); 

은 원하는 것입니다.

2

Math.sqrt의 값을 저장하지 않습니다. 변수는 업데이트되지 않지만 대신 결과가 반환됩니다. 실제 문제는 그냥 어떤 변수에 저장하지 않고 결과를두고있다

xconv = Math.sqrt(xconv); 
3
double squareRoot = Math.sqrt(xconv); 
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); 

    }}); 
0
x=Double.parseDouble(edtchar.getText().toString()); 
ans.setText(Double.toString(Math.sqrt(x))); 

는 텍스트 뷰으로 두 번 같은 X를 고려하고 ANS 내 코드를 사용하여 코드를 바꿉니다.

관련 문제