Как я могу получить первые 2 десятичных знака числа без учета веса последовательных десятичных знаков в Java?

В Java у меня есть объект Number, который может иметь десятичные цифры.

Например, это может быть что-то вроде: 123.456789

Где 123 - целая часть моего числа, а 456789 - десятичная часть.

Хорошо. Как я могу получить такое же число только с двумя первыми десятичными знаками, не учитывая вес последовательных десятичных знаков?

Например, если я хочу получить число только с двумя первыми десятичными разрядами, я хочу получить 123,45, а не 123,46 (приблизительно, потому что следующее десятичное число>5).

Мне также нужно, чтобы, если у меня было целое число 3, я хочу получить его с двумя первыми десятичными знаками, то есть 3,00.

Как мне это сделать?

2 ответа

Попробуйте метод setScale, как показано ниже

BigDecimal value = new BigDecimal("123.456789");
BigDecimal bg2 = value.setScale(2, RoundingMode.DOWN);
System.out.println(bg2);

Output:
123.45

For input as 3, output is 3.00
DecimalFormat decimalFormat = new DecimalFormat("#.##");
decimalFormat.setRoundingMode(RoundingMode.DOWN);
decimalFormat.format(123.456789);

выход: 123.45

Для ввода как 3, выход 3

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