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?