Ich habe ein BigDecimal-Objekt, und ich möchte es in Zeichenfolge konvertieren. Das Problem ist, dass mein Wert bekam Fraktion und ich bekomme eine große Zahl (in der Länge) und ich brauche nur die ursprüngliche Zahl in Zeichenfolge zum Beispiel: fürBigDecimal zu string
BigDecimal bd = new BigDecimal(10.0001)
System.out.println(bd.toString());
System.out.println(bd.toPlainString());
der Ausgang ist:
10.000099999999999766941982670687139034271240234375
10.000099999999999766941982670687139034271240234375
und ich brauche die genau löschte, um die Anzahl 10.0001
in string
Eine effizientere Art und Weise der ein 'double' auf diese Weise zu konvertieren, ist' BigDecimal.valueOf (double) zu verwenden; ' –
@PeterLawrey Nicht sicher, dass ich verstehe. 'BigDecimal.valueOf (double)' "rundet" das Double auf die gleiche Art und Weise ab, wie Double beim Drucken abgerundet wird, was ziemlich komplexe Regeln verwendet, daher bin ich mir nicht sicher, wie Sie sich darauf verlassen können. – assylias
'Übersetzt einen Double-Wert in einen BigDecimal-Wert und verwendet dabei die kanonische String-Repräsentation des Double, die von der Double.toString (double) -Methode bereitgestellt wird. Hinweis: Dies ist im Allgemeinen die bevorzugte Methode zum Konvertieren eines double (oder float) in ein BigDecimal, da der zurückgegebene Wert dem Wert entspricht, der sich aus dem Konstruieren eines BigDecimal aus dem Ergebnis der Verwendung von Double.toString (double) ergibt. " –