Math.round (x) - округление до .5 - PullRequest
       9

Math.round (x) - округление до .5

0 голосов
/ 19 октября 2018

В настоящее время я выясняю, как округлить суммы, например, от 8,3 до 8,5 или от 8,6 до 9,0 с помощью метода Math.round.

Мой текущий способ - проверить, является ли начальное значение меньше округленногозначение, а затем +.5 или -.5.

вот так:

if(amountB < Math.round(amountB))
        {
            System.out.println(Math.round(amountB ) - .5);
        }

Но это не работает так, как я хочу, всегда выдает 8,5, даже если ввод 8,6.

Спасибо за любыесовет.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Я бы сделал это так:

public class MyClass {
private static double myRound(double x) {
    return Math.ceil(x*2.0) /2.0;
}

public static void main(String args[]) {
    double x = 8.2;
    double y = 8.6;
    double z = 8.8;

    System.out.println("" + x + " rounded upwards is = " + myRound(x));
    System.out.println("" + y + " rounded upwards is = " + myRound(y));
    System.out.println("" + z + " rounded upwards is = " + myRound(z));
}

//8.2 rounded is = 8.5
//8.6 rounded is = 9.0
//8.8 rounded is = 9.0
}
0 голосов
/ 19 октября 2018

Вы можете попробовать это;

double rounded = Math.round(x * 2.0) / 2.0;

2.0 идет от 1 / 0,5

...