Java - Как округлить значение с плавающей запятой (или BigDecimal) на 0,5?

Кажется, простой вопрос, но Я действительно отстой в математике и несколько примеров в Интернете, которые я искал похоже, у меня не работает. (результат просто возвращает то же значение, что и ввод и т. д.)

Например .. но это на C, а не на Java но это не на C ...

Кажется, простой вопрос, но Я действительно не разбираюсь в математике , и несколько примеров в Интернете, которые я искал, не работают для меня. (результат просто возвращает то же значение, что и ввод и т. д.)

Например .. но это на C, а не на Java но это не на C ...

Кажется, простой вопрос, но Я действительно плохо разбираюсь в математике , и несколько примеров в Интернете, которые я искал, не работают для меня. (результат просто возвращает то же значение, что и ввод и т. д.)

Например .. но это на C, а не на Java Round to Next .05 in C

Итак, моя цель - иметь %. 1f формат float или double или большой десятичный и желая округлить его до ближайшего 0,5

example:

1.3 --> 1.5
5.5 --> 5.5
2.4 --> 2.5
3.6 --> 4.0
7.9 --> 8.0

, я попробовал следующий пример, но не сработал :( ниже просто выведите 1,3, что является исходным значением. Я хотел, чтобы оно было 1,5

public class tmp {

    public static void main(String[] args) {

      double foo = 1.3;

      double mid = 20 * foo;

      System.out.println("mid " + mid);

      double out = Math.ceil(mid);

      System.out.println("out after ceil " + out);

      System.out.printf("%.1f\n", out/20.0);
    }
}

6
задан Community 23 May 2017 в 12:31
поделиться