En Java, quiero tomar un doble valor y convertirlo a BigDecimal
e imprimir su valor String con una cierta precisión.Convertir doble a BigDecimal y establecer BigDecimal Precision
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 cosa enorme:
47,47999999999999687361196265555918216705322265625
y no
47,48
La razón por la que estoy haciendo la conversión BigDecimal
es a veces el doble valor que contiene una gran cantidad de decimales (es decir -.000012
) y al convertir el doble en una cadena producirá la notación científica -1.2E-4
. Quiero almacenar el valor de cadena en notación no científica.
Quiero que BigDecimal siempre tenga dos unidades de precisión como esta: "47.48". ¿Puede BigDecimal restringir la precisión en la conversión a cadena?
Nota: BigDecimal también utilizará a veces la notación científica (creo que para la serie <10^-6) – assylias