1
私は、Heronアルゴリズムを使用して平方根を計算するJavaアプリケーションを作りたかったのです。しかし私が9に入ると、2.777777910232544が画面に表示されます。 私は1を入力すると1を出力します。間違ったコードを書いたのか、Javaで浮動小数点が何か分からないのです。ここでAndroidの平方根計算エラー
私のコードです:
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()関数を自分自身で記述したいと思っています。 –
なぜですか?これは、数学ライブラリに既に存在する最適化されたものよりもパフォーマンスが低いことは確かです。 –