1
我想製作一個Java應用程序,使用Heron算法計算平方根。但是當我輸入9時,它會在屏幕上打印2.777777910232544。 當我輸入1時,它會打印1.現在我不知道我是否寫了錯誤的代碼,或者我不知道Java中的浮動內容。安卓平方根計算錯誤
這裏是我的代碼:
public class MainActivity extends AppCompatActivity {
float length1;
float width1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView mainOutput = (TextView) findViewById(R.id.mainOutput);
final EditText mainInput = (EditText) findViewById(R.id.mainInput);
final Button wurzel2 = (Button) findViewById(R.id.wurzel2);
assert wurzel2 != null;
wurzel2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i = 0; i < 20; i++) {
float inputNumber = Integer.parseInt(mainInput.getText().toString());
length1 = 1;
width1 = inputNumber/length1;
float length2 = (length1 + width1)/2;
float width2 = inputNumber/length2;
length1 = length2;
width1 = width2;
}
double wurzel = length1/width1;
mainOutput.setText(String.valueOf(wurzel));
}
});
}
}
爲什麼不使用[sqrt()函數](https://developer.android.com/reference/java/lang/Math.html#sqrt(double))? –
那麼我基本上想自己寫sqrt()函數。 –
爲什麼?它肯定會比數學庫中已經存在的優化算法性能更差。 –