Как я могу получить первые 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