Как мне конвертировать двойные в 2 десятичных знака? - PullRequest
0 голосов
/ 27 мая 2018

Вот код: Как мне сделать так, чтобы оно получалось только как 2 десятичных знака?Мое приложение падает, когда я использую String.format("%.2f", maltRequiredString);

public class MainActivity extends AppCompatActivity {

    EditText batchVolEditText;
    EditText ogEditText;
    EditText bheEditText;
    TextView maltRequiredTextView;


    public void calculate(View view) {

        String batchVolString = batchVolEditText.getText().toString();
        String ogString = ogEditText.getText().toString();
        String bheString = bheEditText.getText().toString();

        double batchVolDouble = Double.parseDouble(batchVolString);
        double ogDouble = Double.parseDouble(ogString);
        double bheDouble = Double.parseDouble(bheString);
        double specificGravity = 0.96;

        double maltRequired = (batchVolDouble * ogDouble * specificGravity) / bheDouble;


        String maltRequiredString = Double.toString(maltRequired);

        maltRequiredTextView.setText(maltRequiredString + "kg");


    }

1 Ответ

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

Помните, что вы не можете использовать

 String.format("%.2f", maltRequiredString);

, потому что maltRequiredString является строкой.Правильное кодирование заключается в том, что вы должны использовать float в этой функции и для этого вам нужно конвертировать вашу строку в float

float f = Float.valueOf(maltRequiredString);  
String test = String.format("%.02f", f);

Вы также можете использовать эту технику, чтобы сделать ее 2 десятичной

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