Saya ingin melakukan beberapa penjumlahan sederhana dengan beberapa nilai mata uang yang dinyatakan dalam BigDecimal
jenis.
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);
Tentunya saya kurang mengerti dengan baik BigDecimal
aritmatika, lihat output di belakang.
Test
0
0
0
Adakah yang bisa membantu saya?
java
bigdecimal
Sergio del Amo
sumber
sumber
add(..)
: "tambah - nilai yang akan ditambahkan ke BigDecimal ini .". Lebih jauh, mengatakan "... mengembalikan BigDecimal baru ..." alih-alih "... mengembalikan BigDecimal ..." akan menjadi sentuhan yang bagus. Mungkin aku hanya nitpicking, tapi IMHO ada ruang untuk perbaikan di sini :-)Sepertinya dari dokumen Java di sini yang menambahkan mengembalikan BigDecimal baru:
sumber
sumber
Ini sebenarnya agak mudah. Lakukan saja ini:
Lihat juga:
BigDecimal#add(java.math.BigDecimal)
sumber
BigInteger tidak dapat diubah, Anda perlu melakukan ini,
sumber
sumber
20
sumber
Anda juga dapat melakukannya seperti ini:
Cetakan:
sumber
Menggunakan Java8 lambdas
Ini mencakup kasus-kasus di mana beberapa atau semua objek dalam daftar adalah nol.
sumber
Itu tidak dapat diubah karena secara internal menyimpan input Anda yaitu (15) seperti
final private final BigInteger intVal;
dan konsep yang sama digunakan pada saat penciptaan string setiap input akhirnya menyimpan diprivate final char value[];
. Jadi tidak ada bug yang ditanamkan.sumber
Contoh lain untuk ditambahkan
BigDecimals
. Poin kunci adalah bahwa mereka tidak dapat diubah dan mereka hanya dapat diinisialisasi dalam konstruktor. Ini kodenya:sumber