Круглые числа с плавающей запятой или двойные числа в Android Studio из параметров

Я читал много сообщений о том, как округлять числа, либо с плавающей запятой, либо с удвоением, чтобы показать, например, только два десятичных знака, это выглядит легко, когда вы делаете это с использованием уже определенных переменных, но в моем случае вводятся все числа через InputEditText, и я не знаю, где мне поставить десятичное ограничение, чтобы вместо, например, "2543.789906" отображалось "2534.78"

**My code:**

package com.example.converfuel;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

public class Timeextends MainActivity {

    private Spinner spinner1, spinner2;
    private Button btnSubmit;
    private EditText from;
    private TextView to;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_masa);

        btnSubmit = (Button) findViewById(R.id.btnSubmit);
        from = (EditText) findViewById(R.id.InputEditText);
        to = (TextView) findViewById(R.id.OutputTextView);

        spinner1 = (Spinner) findViewById(R.id.spinner1);
        List<String> list1 = new ArrayList<String>();
        list1.add("Nanosecond");
        list1.add("Microsecond");
        list1.add("Milisecond");
        list1.add("Second");
        list1.add("Minute");
        list1.add("Hour");
        list1.add("Day");
        list1.add("Week");
        list1.add("Month");
        list1.add("Year");
        list1.add("Decade");
        list1.add("Century");
        ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, list1);
        dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner1.setAdapter(dataAdapter1);


        spinner2 = (Spinner) findViewById(R.id.spinner2);
        List<String> list2 = new ArrayList<String>();
        list2.add("Nanosecond");
        list2.add("Microsecond");
        list2.add("Milisecond");
        list2.add("Second");
        list2.add("Minute");
        list2.add("Hour");
        list2.add("Day");
        list2.add("Week");
        list2.add("Month");
        list2.add("Year");
        list2.add("Decade");
        list2.add("Century");
        ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, list2);
        dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner2.setAdapter(dataAdapter2);
    }


    public void onClick (View v){

        int index1 = spinner1.getSelectedItemPosition();
        int index2 = spinner2.getSelectedItemPosition();
        float value = Float.parseFloat(from.getText().toString());

//
//

        float ratio[] = {3.154e+18f, 3.154e+15f, 3.154e+12f, 3.154e+9f, 5.256e+7f, 876000f, 36500f, 5214f, 1200f, 100f, 10f, 1.0f};
        float result = value / ratio[index1] * ratio[index2];
        to.setText(result + "");
    }
}

Спасибо за вашу помощь.


person Mr.FAL    schedule 02.04.2020    source источник
comment
Вы используете DecimalFormat в соответствии с вашими тегами.   -  person user207421    schedule 02.04.2020


Ответы (1)


Попробуйте так

 DecimalFormat df = new DecimalFormat("#.##");
 String strResult = String.valueOf(Double.valueOf(df.format(result)));
 to.setText(strResult);
person IntelliJ Amiya    schedule 04.05.2020
comment
Не могли бы вы сказать мне, где я должен поместить это в свой код? Я не уверен. Спасибо за ваше время - person Mr.FAL; 04.05.2020
comment
После float result - person IntelliJ Amiya; 04.05.2020
comment
Хорошо, я попробовал, но ничего не происходит... Это действительно отвратительно видеть числа вроде 249,4567 вместо 249,4 или 249,45 в каждом примере. - person Mr.FAL; 04.05.2020