Я хотел создать приложение Java, которое вычисляет квадратный корень, используя алгоритм Heron. Но когда я вхожу в 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(). –
Почему? Это будет, безусловно, менее результативным, чем оптимизированный, уже присутствующий в библиотеке Math. –