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

Привет, друзья, я хочу получить два значения после десятичной дроби, но в моей я получаю 0 после десятичной дроби. это мой код ниже.

  if (!ed.getText().toString().equals("")) {
                        if (rb1.isChecked()) {
                            int input = Integer.valueOf(ed.getText().toString());
                            double out = input / 24;
                            out = (double)Math.round(out * 100)/100;
                            Intent m = new Intent(Page.this,MActivity.class);
                            m.putDoubleExtra("res", out);
                            startActivity(m);

Я также ссылался на эти сайты: Android: Как получить только две цифры после запятой в десятичном формате? не хочу обрезать значение

Java: как получить часть после десятичной точки?

и я попробовал код ниже также, но он получает 0 после десятичного числа.

DecimalFormat newFormat = new DecimalFormat("#.##");
double twoDecimal =  Double.valueOf(newFormat.format(d))

Пожалуйста, помогите мне новичок в кодировании. Заранее спасибо.

2 ответа

Решение

DecimalFormat newFormat = new DecimalFormat("#.00"); double twoDecimal = Double.valueOf(newFormat.format(d))

В вашем коде я нашел

out = (double)Math.round(out * 100.0)/100.0;

Поскольку input а также 24 целые числа, когда вы делите его, он по-прежнему производит int, Только тогда он преобразуется в двойной.

Один из способов решить эту проблему: double out = input / 24.0;

Другие вопросы по тегам