Konvertieren Sie double in BigDecimal und stellen Sie BigDecimal Precision ein
In Java möchte ich einen doppelten Wert in einen konvertierenBigDecimal
und drucke seinen String-Wert mit einer bestimmten Genauigkeit aus.
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
}
}
Es druckt diese riesige Sache:
47.47999999999999687361196265555918216705322265625
und nicht
47,48
Der Grund warum ich das macheBigDecimal
Die Konvertierung ist manchmal so, dass der doppelte Wert viele Dezimalstellen enthält (d. h.-.000012
) und beim Konvertieren des Double in einen String wird eine wissenschaftliche Notation erzeugt-1.2E-4
. Ich möchte den String-Wert in nicht wissenschaftlicher Schreibweise speichern.
Ich möchte, dass BigDecimal immer zwei Genauigkeitseinheiten wie diese hat: "47,48". Kann BigDecimal die Genauigkeit bei der Konvertierung in einen String einschränken?