Как преобразовать Float Result в String и сохранить его в базе данных Firebase - PullRequest
0 голосов
/ 13 января 2019

Мое приложение имеет одну функцию для расчета ИМТ на основе роста и веса. Результат для ИМТ находится на плаву. Как мне преобразовать значение с плавающей точкой в ​​строку, чтобы сохранить результат в базе данных и получить его позже. Потому что, насколько я знаю, база данных Firebase не может сохранить результат в плавающем значении. Могу ли я использовать parseString? как кодировать это. заранее спасибо.

public void bmiCalculator(View v) {
            String heightStr = height.getText().toString();
            String weightStr = weight.getText().toString();

            if (heightStr != null && !"".equals(heightStr)
                    && weightStr != null && !"".equals(weightStr)) {
                float heightValue = Float.parseFloat(heightStr) / 100;
                float weightValue = Float.parseFloat(weightStr);

                float bmi = weightValue / (heightValue * heightValue);


            }
        }

        private void displayBMI(float bmi) {
            String bmiLabel = "";

            if (Float.compare(bmi, 15f) <= 0) {
                bmiLabel = getString(R.string.very_severely_underweight);
            } else if (Float.compare(bmi, 15f) > 0 && Float.compare(bmi, 16f) <= 0) {
                bmiLabel = getString(R.string.severely_underweight);
            } else if (Float.compare(bmi, 16f) > 0 && Float.compare(bmi, 18.5f) <= 0) {
                bmiLabel = getString(R.string.underweight);
            } else if (Float.compare(bmi, 18.5f) > 0 && Float.compare(bmi, 25f) <= 0) {
                bmiLabel = getString(R.string.normal);
            } else if (Float.compare(bmi, 25f) > 0 && Float.compare(bmi, 30f) <= 0) {
                bmiLabel = getString(R.string.overweight);
            } else if (Float.compare(bmi, 30f) > 0 && Float.compare(bmi, 35f) <= 0) {
                bmiLabel = getString(R.string.obese_class_i);
            } else if (Float.compare(bmi, 35f) > 0 && Float.compare(bmi, 40f) <= 0) {
                bmiLabel = getString(R.string.obese_class_ii);
            } else {
                bmiLabel = getString(R.string.obese_class_iii);
            }

            bmiLabel = bmi + "\n\n" + bmiLabel;
            result.setText(bmiLabel);


        } 

1 Ответ

0 голосов
/ 13 января 2019

... насколько я знаю, база данных firebase не может сохранить результат в плавающем значении.

Firebase может хранить любое допустимое числовое значение JavaScript, которое охватывает гораздо больше, чем вероятный диапазон значений BMI. Поэтому, если вы хотите, вы можете просто сохранить значения с плавающей точкой в ​​базе данных напрямую.

Но если вы хотите преобразовать float в строку, используйте:

String.valueOf(23.42) // returns "23.42"

И если вы хотите преобразовать строку, содержащую число обратно в float, используйте:

Float.parseFloat("23.42") // returns 23.42
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...