如何将Float结果转换为String并将其保存到Firebase数据库

时间:2019-01-13 14:58:16

标签: java android firebase-realtime-database

我的应用程序具有一项功能,可以根据身高和体重来计算BMI。 BMI的结果是浮动的。我如何将浮点值转换为字符串以将结果保存到Firebase中,然后再检索。因为据我所知,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 :(得分:1)

  

...据我所知,firebase数据库无法将结果保存为浮点值。

Firebase可以存储任何有效的JavaScript数字值,该值涵盖的范围远远超出BMI值的可能范围。因此,如果需要,您可以直接将浮点值存储在数据库中。

但是,如果要将float转换为字符串,请使用:

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

如果要将包含数字的字符串转换回float,请使用:

Float.parseFloat("23.42") // returns 23.42
相关问题