Satu poin penting yang disinggung tetapi tidak langsung ditangani adalah perbedaan antara "presisi" dan "skala" dan bagaimana mereka digunakan dalam dua pernyataan. "presisi" adalah jumlah total angka signifikan dalam suatu angka. "skala" adalah jumlah digit di sebelah kanan titik desimal.
Konstruktor MathContext hanya menerima presisi dan RoundingMode sebagai argumen, dan karenanya skala tidak pernah ditentukan dalam pernyataan pertama.
setScale()
jelas menerima skala sebagai argumen, serta RoundingMode, namun presisi tidak pernah ditentukan dalam pernyataan kedua.
Jika Anda memindahkan titik desimal satu tempat ke kanan, perbedaannya akan menjadi jelas:
// 1.
new BigDecimal("35.3456").round(new MathContext(4, RoundingMode.HALF_UP));
//result = 35.35
// 2.
new BigDecimal("35.3456").setScale(4, RoundingMode.HALF_UP);
// result = 35.3456