Ich möchte einige einfache Summen mit einigen Währungswerten in BigDecimal
Typ machen.
BigDecimal test = new BigDecimal(0);
System.out.println(test);
test.add(new BigDecimal(30));
System.out.println(test);
test.add(new BigDecimal(45));
System.out.println(test);
Offensichtlich verstehe ich die BigDecimal
Arithmetik nicht gut , siehe Ausgabe dahinter.
Test
0
0
0
Kann mir jemand helfen?
java
bigdecimal
Sergio del Amo
quelle
quelle
add(..)
: "augend - Wert, der diesem BigDecimal hinzugefügt werden soll ." Darüber hinaus wäre es eine nette Geste zu sagen, "... gibt ein neues BigDecimal zurück ..." anstelle von "... gibt ein BigDecimal zurück ...". Vielleicht bin ich nur ein Trottel, aber meiner Meinung nach gibt es hier Raum für Verbesserungen :-)Aus den Java-Dokumenten hier geht hervor, dass add ein neues BigDecimal zurückgibt:
quelle
quelle
Es ist eigentlich ziemlich einfach. Mach das einfach:
Siehe auch:
BigDecimal#add(java.math.BigDecimal)
quelle
BigInteger ist unveränderlich, Sie müssen dies tun,
quelle
quelle
20
quelle
Sie können es auch so machen:
Drucke:
quelle
Verwenden von Java8-Lambdas
Dies gilt für Fälle, in denen einige oder alle Objekte in der Liste null sind.
quelle
Es ist unveränderlich, da es Ihre Eingabe intern speichert, dh (15),
final private final BigInteger intVal;
und dasselbe Konzept zum Zeitpunkt der Zeichenfolgenerstellung verwendet. Jede Eingabe wird schließlich inprivate final char value[];
gespeichert. Es gibt also keinen implizierten Fehler.quelle
Nur ein weiteres Beispiel zum Hinzufügen
BigDecimals
. Der entscheidende Punkt ist, dass sie unveränderlich sind und nur im Konstruktor initialisiert werden können. Hier ist der Code:quelle