Convertir el doble a BigDecimal y establecer la precisión BigDecimal

En Java, quiero tomar un doble valor y convertirlo en unBigDecimal e imprimir su valor de cadena con una cierta precisión.

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 
    }
}

Imprime esta gran cosa:

47.47999999999999687361196265555918216705322265625

y no

47.48

La razón por la que estoy haciendo elBigDecimal la conversión es a veces el valor doble contendrá muchos decimales (es decir,-.000012) y al convertir el doble en una cadena producirá notación científica-1.2E-4. Quiero almacenar el valor de cadena en notación no científica.

Quiero que BigDecimal tenga siempre dos unidades de precisión como esta: "47.48". ¿Puede BigDecimal restringir la precisión en la conversión a cadena?

Respuestas a la pregunta(8)

Su respuesta a la pregunta