En Java, je veux prendre une valeur double et la convertir en une valeur de BigDecimal
et imprimer sa valeur String avec une certaine précision.
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
}
}
Il imprime ce truc énorme :
47.47999999999999687361196265555918216705322265625
et non
47.48
La raison pour laquelle je fais le BigDecimal
la conversion est parfois la valeur double contiendra beaucoup de décimales (par ex. -.000012
) et lorsque l'on convertit le double en String, on obtient la notation scientifique -1.2E-4
. Je veux stocker la valeur de la chaîne en notation non scientifique.
Je veux que BigDecimal ait toujours deux unités de précision comme ceci : "47.48". BigDecimal peut-il restreindre la précision lors de la conversion en chaîne de caractères ?