Проблемы с десятичной дробью при использовании Java - PullRequest
0 голосов
/ 30 августа 2018

Я округляю некоторое значение, когда я передал эти значения в моем round() -функции, в моем округлом-функции я использовал Math.pow и Math.round для достижения:

round(x,2);

round(xx,2);

float x =4.68;
float xx = 4.00;

after my round off function

public static Float round(Float value, int places) {
        if (value != null) {
            Float scale = (float) Math.pow(10, places);
            return (Float) (Math.round(value * scale) / scale);
        }
        return value;
    }
Output Coming:
x = 4.7
x = 4

expected Output is or REQUIREMENT IS:
x-->4.70
x-->4.00

1 Ответ

0 голосов
/ 30 августа 2018

Если вы вызываете функцию round (x, 2), это означает, что вы ожидаете в качестве выхода число, округленное до 2 десятичных знаков. Неважно, 4,7 или 4,70000. Это все тот же номер.

Я думаю, что ваша проблема связана с форматированием вывода для печати. В этом случае вы можете использовать простой код, подобный следующему:

    float x =4.68;
    float xx = 4.00;
    System.out.printf("%.2f", x);
    System.out.printf("%.2f", xx);
...