Mengenal Class BigDecimal Dalam Java


Class BigDecimal (java.math.BigDecimal) memungkinkan kita untuk melakukan operasi pada bilangan desimal dengan lebih spesifik lagi seperti operasi dasar (penjumlahan,pengurangan,perkalian,dll),pembulatan desimal,pembandingan,konversi format,manipulasi skala dan banyak lagi yang bisa dilakukan oleh BigDecimal

Class ini akan kita perlukan jika kita ingin perhitungan desimal dengan presisi yang tinggi

Cara membuat bilangan dengan BigDecimal adalah sebagai berikut :

BigDecimal a = new BigDecimal("3");

Note : import dulu package java.math.* atau class java.math.BigDecimal;

Untuk operasi dasar pada class BigDecimal adalah sebagai berikut :

1) Membandingkan Bilangan BigDecimal

Kita menggunakan method compareTo() untuk membandigkan 2 bilangan tipe data BigDecimal.method ini akan mengembalikan 1 jika bilangan pertama lebih besar, 0 jika bilangan pertama sama besar dengan bilangan kedua serta -1 jika bilangan pertama lebih kecil

Sebaiknya kita jangan menggunakan equals() untuk membandingkan BigDecimal karena equals() hanya akan mengembalikan true jika nilai dan skala nya sama.Sementara jika nilainya sama tapi skalanya beda maka equals() akan mengembalikan false .Sebagai contoh 3 dan 3.0 akan dianggap berbeda oleh equals()

membandingkan bilangan bigdecimal




2) Mengubah Float dan Double ke BigDecimal dan Sebaliknya

Kita bisa pake valueOf() dari class BigDecimal untuk mengubah tipe data float ataupun double ke BigDecimal

Sementara itu untuk operasi sebaliknya kita bisa method floatValue() dari objeknya untuk mengubah ke float dan doubleValue() dari objek nya untuk mengubah ke double

convert float double ke bigdecimal dan sebaliknya


3) Operasi Bilangan Dengan BigDecimal


add() Pertambahan
subtract() Pengurangan
multiply() Perkalian
divide() Pembagian
remainder() Modulus
pow() Perpangkatan
max() Nilai Maksimal
min() Nilai Minimal
movePointLeft() Menggeser Titik ke Kiri
movePointRight() Menggeser Titik ke Kanan

di sini kita bisa menentukan mode pembulatan dan skala desimal nya cara nya yaitu seperti ini 

Contoh :

BigDecimal a = new BigDecimal("5.424");
BigDecimal b = new BigDecimal("7.953");
MathContext ab = new MathContext(5,RoundingMode.HALF_UP);
BigDecimal hasil = a.multiply(b,ab);
System.out.println(hasil);//output 43.137
Untuk RoundingMode adalah metode pembulatan yang dipakai.Di sini ada macam-macam metode pembulatan yaitu :

UP, dibulatkan ke bilangan di atas nya contoh 2.3 dibulatkan ke 3 dan -1.4 dibulatkan ke -2
DOWN, dibulatkan ke bilangan  di bawah nya contoh 2.3 dibulatkan ke 2 dan -1.4 dibulatkan ke -1
CEILING, pembulatan yang menambah nilai

Contoh 2.3 dibulatkan ke 3 dan -1.4 dibulatkan ke -1

FLOOR, pembulatan yang mengurangi nilai contoh 2.3 dibulatkan ke 2 dan -1.4 dibulatkan ke -2

HALF_UP, dibulatkan ke bilangan terdekat jika digit terakhir 5 maka akan dibulatkan ke atas

Contoh 2.5 dibulatkan ke 3 dan -5.5 dibulatkan ke -6
            2.3 dibulatkan ke 2 dan -1.7 dibulatkan ke -2

HALF_DOWN, dibulatkan ke bilangan terdekat jika digit terakhir 5 maka akan dibulatkan ke bawah

Contoh 2.5 dibulatkan ke 2 dan -5.5 dibulatkan ke -5
            2.3 dibulatkan ke 2 dan -1.7 dibulatkan ke -2

HALF_EVEN,dibulatkan ke bilangan terdekat jika digit terakhir 5 maka dilihat digit sebelumnya jika kurang dari 5 dibulatkan ke bawah,jika 5 atau lebih dibulatkan ke atas

Contoh 2.5 dibulatkan ke 2 dan -5.5 dibulatkan ke -6
            2.3 dibulatkan ke 2 dan -1.7 dibulatkan ke -2

UNNECCESSARY,fungsinya hanya untuk menghilangkan digit 0 di belakang desimal contoh 1.0 menjadi 1 dan -1.0 menjadi -1 jika digunakan pada bilangan desimal yang digitnya tidak ada nol maka akan menghasilkan error (tapi tergantung juga dengan skala yang ditentukan)


Note : hanya bisa memangkatkan dengan bilangan bulat saja contoh 2 pangkat 3 dan variabel pangkat nya juga harus int


operasi bigdecimal

4) Menyatakan Nol,Satu, dan Sepuluh Dengan BigDecimal

Kita bisa menyatakan bilangan nol,satu dan sepuluh dengan method spesial di BigDecimal yaitu sebagai berikut :

BigDecimal a = BigDecimal.ZERO;
BigDecimal b = BigDecimal.ONE;
BigDecimal c = BigDecimal.TEN;
System.out.println(a+" "+b+" "+c);//output 0 1 10

nol satu sepuluh dengan bigdecimal

5) Membulatkan Bilangan Desimal 

Mungkin udah disinggung tadi tentang pembulatan.Untuk pembulatan sendiri ada 2 cara untuk melakukannya yaitu dengan MathContext dan method setScale()

Dengan MathContext

MathContext ab = new MathContext(3,RoundingMode.HALF_EVEN);/*pembulatan 3 angka bena dengan mode half even*/
BigDecimal a = new BigDecimal("5.324",ab);
System.out.println(a);//output 5.32

Dengan setScale()

BigDecimal a = new BigDecimal("5.324");
BigDecimal b = a.setScale(2, RoundingMode.HALF_EVEN);/*pembulatan 2 angka desimal dengan mode half even
System.out.println(b);//output 5.32
Untuk mode pembulatan bisa anda baca di atas lagi





Mungkin itu saja postingan mengenai class BigDecimal semoga bisa bermanfaat...

Jangan spam atau promosi di sini jgn juga taruh link aktif kalau mau dapat backlink bisa taruh di profil saja (Name/URL)
EmoticonEmoticon