Конвертировать double в BigDecimal и установить точность BigDecimal

В Java я хочу взять двойное значение и преобразовать его вBigDecimal и распечатать его значение String с определенной точностью.

import java.math.BigDecimal;
public class Main {
    public static void main(String[] args) {
        double d=-.00012;
        System.out.println(d+""); //This prints -1.2E-4

        double c=47.48000;
        BigDecimal b = new BigDecimal(c);
        System.out.println(b.toString()); 
        //This prints 47.47999999999999687361196265555918216705322265625 
    }
}

Это печатает эту огромную вещь:

47.47999999999999687361196265555918216705322265625

и не

47.48

Причина, по которой я делаюBigDecimal преобразование иногда двойное значение будет содержать много десятичных разрядов (т.е.-.000012) и при преобразовании двойного в строковое будет производиться научное обозначение-1.2E-4, Я хочу хранить строковое значение в ненаучной записи.

Я хочу, чтобы BigDecimal всегда имел две единицы точности, например: "47,48". Может ли BigDecimal ограничить точность при преобразовании в строку?

Ответы на вопрос(8)

Ваш ответ на вопрос