Meine App produziert Double, wobei Double.toString () "-3.1999999999999953" produziert - während ich erwarte, dass es "-3.2" produziert.
Ich bekomme diese Doppel aus JSciences Amount#getEstimatedValue()
.
Ich möchte keine beliebige Anzahl von Ziffern für die Genauigkeit festlegen, da ich nicht weiß, wie viele Ziffern wichtig sind, aber ich möchte nicht, dass sie Zahlen mit der Endung "99999999. *" erzeugt.
Wie kann ich Doubles in Strings ohne dieses Problem konvertieren?
Empfohlene Lösung
%Vor%Der Hack, der später im letzten Abschnitt dieses Posts vorgestellt wurde, war das erste, was einem beim Versuch, eine OP-Frage zu lösen, in den Sinn kam.
Dann fragte ein Freund, was ich mache und sagte, OP sei besser, BigDecimal
zu benutzen und ich ging in den Facepalm-Modus.
Aber ich werde den Hack in diesem Post lassen, damit die Welt sehen kann, wie dumm ich manchmal sein kann.
Beim Drucken können Sie System.out.format
verwenden.
Der folgende Ausschnitt wird den Wert von yourDecimal
auf eine Dezimalstelle runden und dann den Wert ausgeben.
Ausgabe
%Vor%...
%Vor%Ausgabe
%Vor%Sie könnten es versuchen
Leicht "Schwergewicht", sollte aber den Trick machen. Einige Beispielverwendung bei:
DecimalFormat-Unterstrukturgrenze funktioniert nicht richtig