Радиокнопки - опция десятичного разряда - PullRequest
0 голосов
/ 14 мая 2018

Я создаю программу, которая выполняет определенные математические функции для вас.Пользователь вводит число и нажимает кнопку, которая приводит их к другому занятию, и отображает ответ плюс формулу и т. Д. Но иногда ответ имеет десятичное число с сумасшедшим количеством чисел после десятичного.

Теперь я уже знаю, как изменить количество чисел после десятичной дроби, но я хочу дать пользователю возможность указать, сколько цифр они хотят после десятичной, используя радиокнопки на той же странице с editText.

Как бы я это сделал?

это то, что у меня есть до сих пор ....

входная страница с radiobuttons-

public void click(Просмотр представления) {

    boolean checked = ((RadioButton) view).isChecked();

    switch (view.getId()){
        case R.id.radioButton1:
            if (checked){
                Intent check = new Intent(this, Output.class);
                String value = "0.0";
                check.putExtra("PATTERN", value);
            }
        break;
        case R.id.radioButton2:
            if (checked){
                Intent check = new Intent(this, Output.class);
                String value = "0.00";
                check.putExtra("PATTERN", value);
            }
            break;
        case R.id.radioButton3:
            if (checked){
                Intent check = new Intent(this, Output.class);
                String value = "0.000";
                check.putExtra("PATTERN", value);
            }
            break;
        case R.id.radioButton4:
            if (checked){
                Intent check = new Intent(this, Output.class);
                String value = "0.000000000";
                check.putExtra("PATTERN", value);
            }
            break;
    }

}

выходная страница-

Intent intent = getIntent();
String pattern = intent.getStringExtra("PATTERN");
String answerS = intent.getStringExtra("MESSAGE");

double fix = Double.parseDouble(answerS);
DecimalFormat dFormatter = new DecimalFormat(pattern);
String answerSS = "" + dFormatter.format(fix);

TextView answer = findViewById(R.id.answer);
answer.setText(answerSS);

это макет и какие параметры я хочу

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

изменить эту вещь ..

switch (view.getId()){
    case R.id.radioButton1:
        if (checked){
            Intent check = new Intent(this, Output.class);
            String value = "0";
            check.putExtra("PATTERN", value);
        }
    break;
    case R.id.radioButton2:
        if (checked){
            Intent check = new Intent(this, Output.class);
            String value = "00";
            check.putExtra("PATTERN", value);
        }
        break;
    case R.id.radioButton3:
        if (checked){
            Intent check = new Intent(this, Output.class);
            String value = "000";
            check.putExtra("PATTERN", value);
        }
        break;
    case R.id.radioButton4:
        if (checked){
            Intent check = new Intent(this, Output.class);
            String value = "000000000";
            check.putExtra("PATTERN", value);
        }
        break;
}





    Intent intent = getIntent();
    String pattern = intent.getStringExtra("PATTERN");
    String answerS = intent.getStringExtra("MESSAGE");

    double fix = Double.parseDouble(answerS);
    DecimalFormat dFormatter = new DecimalFormat("#."+pattern);
    String answerSS = "" + dFormatter.format(fix);

    TextView answer = findViewById(R.id.answer);
    answer.setText(answerSS);
0 голосов
/ 14 мая 2018

Используйте DecimalFormatter в зависимости от каждой кнопки RadioButton:

double number = 3.14159265359;
DecimalFormat numberFormat = new DecimalFormat("#.0000");
System.out.println(numberFormat.format(number));

Будет выводить: 3.1415 .

Вы можете расширить его, используя большеили меньше 0 или используйте # после разделителя, например:

double number = 3.1500000000;
DecimalFormat numberFormat = new DecimalFormat("#.####");
System.out.println(numberFormat.format(number));

Оставив вас с выводом 3.15 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...