Как сделать результат без десятичного числа - PullRequest
1 голос
/ 24 октября 2019

У меня проблема с кодом. Я скопирую упрощенный код, с двумя editext и одним textview и кнопкой. С этим кодом, если значение в editext1 равно «100», а другое значение editext2 равно «60», я получаю результат ответа «40.0», и он должен быть «40». Спасибо

за код:

public class MainActivity extends AppCompatActivity {
    EditText number1;
    EditText number2;
    Button Add_button3;
    TextView descr;
    int ans=0;
    private BreakIterator view;

    @SuppressLint("CutPasteId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //
        number1=(EditText) findViewById(R.id.editText_first_no);
        number2=(EditText) findViewById(R.id.editText_second_no);
        Add_button3=(Button) findViewById(R.id.add_button3);
        descr = (TextView) findViewById(R.id.textView_DESC);

        //
        Add_button3.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                double num1 = Double.parseDouble(number1.getText().toString());
                double num2 = Double.parseDouble(number2.getText().toString());
                double sump = num1 - num2;

                descr.setText(Double.toString(sump));
            }
        });
    }
}

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Есть два варианта, приведение и использование класса Math.

Чтобы выполнить: descr.setText(Integer.toString((int)sump));

У этого подхода есть только один недостаток, вы теряете информацию.

Поэтому, если вы абстрагируете double sump = 5.0 - 3.3;, что равно: 1.7000000000000002, приведение дает вам «1».

По моему мнению, лучше использовать класс Math и, в частности, метод random (), то есть:

descr.setText(Math.round(sump));

Метод также удаляет некоторые данные, но округляет число до ближайшего целого числа (целого числа), что является предпочтительным способом решения подобных ситуаций.

Для получения дополнительной информации проверьте: Как конвертировать float в int с помощью Java

0 голосов
/ 24 октября 2019

Используйте DecimalFormat как это:

В Kotlin

DecimalFormat("##.##").format(yourValue)

В Java:

new DecimalFormat("##.##").format(yourValue);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...