Konvertieren von string zu BigDecimal im java
Lese ich die Währung von XML
in Java.
String currency = 135.69;
Wenn ich wandeln diese in BigDecimal
ich bekommen:
System.out.println(new BigDecimal(135.69));
Ausgabe:
135.68999999999999772626324556767940521240234375.
Warum ist es, dass es gibt diese vielen zahlen? Wie kann ich diese vermeiden? Alles was ich will ist für Sie zu Ausgang 135.69.
- Sie sicher, Art der
currency
ist string? Und Sie Lesen den Wert als string nur? - mögliche Duplikate von spezifische Präzision eines BigDecimal
- Ihre Währung ist nicht einmal ein
String
mit zu beginnen; benutzen Sie einfach dieBigDecimal
Konstruktor mit einemString
als argument. - Möglicherweise gibt es viele Lösungen, aber wissen Sie, warum es passiert? Lesen Sie dies, wenn Sie das nicht: effbot.org/pyfaq/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den BigDecimal(double) - Konstruktor einige Probleme haben, ist es vorzuziehen, dass Sie verwendet BigDecimal(String) oder BigDecimal.valueOf(double).
Den BigDecimal(double) Dokumentation erklären, was dieses Verhalten:
Kann ich etwas hinzufügen. Wenn Sie mit der Währung, die Sie verwenden sollten-Skala(2), und Sie sollten wahrscheinlich herausfinden, eine Runde Methode.
Den Sie speichern 135.69 als String in der Währung. Aber anstatt die variable Währung, Sie sind wieder vorbei 135.69(double-Wert) in new BigDecimal().
Also Sie sehen, eine Menge von zahlen in der Ausgabe.
Wenn Sie übergeben die variable Währung, Ausgabe 135.69
Hallo Jungs, man kann nicht konvertieren direkt Zeichenfolge bigdecimal
müssen Sie zuerst konvertieren Sie Sie in lange nach, dass u wird zu konvertieren big decimal